Wil*_*lco 10 .htaccess mod-rewrite rewrite
将"/ some/subdir"下面的任何内容重写为"/ some/subdir/projects"的最佳方法是什么,如下所示:
http://www.mydomain.com/some/subidr/test/
Run Code Online (Sandbox Code Playgroud)
......对此:
http://www.mydomain.com/some/subdir/projects/test/
Run Code Online (Sandbox Code Playgroud)
我发现了一个类似的问题,但解决方案在我的案例中似乎没有用.我目前的尝试到目前为止(似乎不起作用):
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/projects/.*$
RewriteRule ^(.*)$ /projects/$1 [L]
Run Code Online (Sandbox Code Playgroud)
编辑:我忘了提到.htaccess文件必须位于/ some/subdir内,因为我没有对服务器的web根目录的写访问权限.
Wil*_*lco 12
这是我最终开始工作的解决方案:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/some/subdir/projects/.*$
RewriteRule ^(.*)$ /some/subdir/projects/$1 [L]
Run Code Online (Sandbox Code Playgroud)
在服务器的文档根目录中的.htaccess配置文件中尝试此规则:
RewriteEngine on
RewriteRule !^some/subdir/projects(/|$) some/subdir/projects%{REQUEST_URI} [L]
Run Code Online (Sandbox Code Playgroud)
如果要在/some/subdir/
目录中使用此规则,请按如下所示更改规则:
RewriteRule !^projects(/|$) projects%{REQUEST_URI} [L]
Run Code Online (Sandbox Code Playgroud)
如果你想重定向的任何请求/some/subdir/projects/
foobar
来/some/subdir/
foobar
,把高于前这条规则中提到:
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /some/subdir/projects[/?\s]
RewriteRule ^some/subdir/projects/?([^/].+)?$ /some/subdir/$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)