我已将我的abc文件夹从 / myproduct / abc 目录移至我服务器上的 / myproduct / extensions / abc 。
如何将对http://localhost/myproduct/abc
的所有来电重定向到http://localhost/myproduct/extensions/abc
?
例如:如果请求的网址为http://localhost/myproduct/abc/pqr.php
,则应将其重定向到http://localhost/myproduct/extensions/abc/pqr.php
基本上我想要.htaccess代码可以放在/ myproduct文件夹中,如果有人请求像http://localhost/myproduct/abc/pqr.php
这样的网址,那么它会查找/ abc /的出现,并用/ extensions / abc /替换它
我们无法替换/ myproduct / abc / by / myproduct / extensions / abc /,因为myproduct可能会对您的产品或myproduct1等进行白色标记。
任何帮助都将受到高度赞赏。 :)
答案 0 :(得分:2)
你可以试试这个:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /(.*)/abc/([^\.]+)\.php/? [NC]
RewriteRule .* %1/extensions/abc/%2.php [R=301,L]
重定向
http://localhost/Any/Number/Of/Folders/abc/AnyFileName.php
要:
http://localhost/Any/Number/Of/Folders/extensions/abc/AnyFileName.php
要在浏览器的地址栏中显示第一个网址,请从R=301
[R=301,L]
备注:强>
如果只需要文件夹myproduct/
,请执行以下操作:http://localhost/myproduct/abc/AnyFileName.php
该规则也适用。
如果文件AnyFileName.php
,例如pqr.php
存在于传入网址的 abc 文件夹中,则会跳过该规则(没有理由拥有它无论如何)。该脚本必须位于替换网址中的文件夹 abc :http://localhost/Any/Number/Of/Folders/extensions/abc/
。
答案 1 :(得分:0)
您使用的是哪台服务器?如果您使用的是Apache 2,请查看mod_rewrite。
答案 2 :(得分:0)
维杰,
试试这个:
RewriteEngine On
RewriteBase /
# REQUEST_FILENAME should not be file name
RewriteCond %{REQUEST_FILENAME} !-f
# REQUEST_FILENAME should not be directory name
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /(.*)/abc/(.*)/? [NC]
RewriteRule .* %1/extensions/abc/%2 [R=301,L]