san*_*ers 25 .htaccess rewrite
我想知道是否可以使用.htaccess
重写文件夹名称.我的意思是这个.
可以说我有一个网址:
www.site.com/folder1/page.php
Run Code Online (Sandbox Code Playgroud)
现在我想重写网址(例如)
www.site.com/apple/page.php
Run Code Online (Sandbox Code Playgroud)
folder1是我的网站空间上的现有文件夹.
重要的是:"苹果"不是一个文件夹,而只是一个名字!
好的,这是一步一步的计划:
www.site.com/folder1/login.php
www.site.com/apple/login.php
这意味着它apple
只是一个名称而不是目录.所有代码都应该来自folder1.苹果应该只是一个别名folder1
.我不能只重命名folder1
来Apple
.为此我只想改写folder1
到apple
.
Gum*_*mbo 47
mod_rewrite只能重写/重定向请求的URI.因此,您需要请求/apple/…
将其重写为相应的/folder1/…
.
试试这个:
RewriteEngine on
RewriteRule ^apple/(.*) folder1/$1
Run Code Online (Sandbox Code Playgroud)
此规则将重写/apple/…
内部以URI路径开头的每个请求/folder1/…
.
编辑 因为您实际上正在寻找另一种方式:
RewriteCond %{THE_REQUEST} ^GET\ /folder1/
RewriteRule ^folder1/(.*) /apple/$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)
此规则旨在与上述其他规则一起使用.请求/folder1/…
将被外部重定向,/apple/…
然后请求/apple/…
将被内部重写回/folder1/…
.
尝试:
RewriteRule ^/apple(.*)?$ /folder1$1 [NC]
Run Code Online (Sandbox Code Playgroud)
您希望在网址中显示的文件夹位于语句的第一部分中 - 这是它将匹配的内容,第二部分将其"重写"到您现有的文件夹中.[NC]标志意味着它将忽略大小写差异,例如Apple /仍将转发.
请参阅此处获取教程:http://www.sitepoint.com/article/guide-url-rewriting/
还有一个很好的Windows测试实用程序可以从这里下载:http : //www.helicontech.com/download/rxtest.zip 只需要注意测试人员你需要省略域名 - 所以测试将是针对/folder1/login.php
从/ folder1重定向到/ apple试试这个:
RewriteRule ^/folder1(.*)?$ /apple$1 [R]
Run Code Online (Sandbox Code Playgroud)
重定向然后重写只需在htaccess文件中组合上面的内容:
RewriteRule ^/folder1(.*)?$ /apple$1 [R]
RewriteRule ^/apple(.*)?$ /folder1$1 [NC]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
91571 次 |
最近记录: |