我需要进行以下 URL 重写:
/.* -> /test/$1
我该如何进行设置mod_rewrite
?
这是我的完整配置:
<VirtualHost *:80>
ServerName main.domain
ServerAlias supplementary.domain
RewriteEngine on
RewriteCond %{HTTP_HOST} ^supplementary\.domain$
RewriteRule ^(.*)$ /supplementary$1 [NS] <-- doesn't work
<Location "/supplementary">
.. custom config ..
</Location>
</VirtualHost>
答案1
尝试以下 mod_rewrite 配置
RewriteEngine 在
RewriteCond %{REQUEST_URI} 上!^/test/
RewriteRule ^/(.*)$ /test/$1
更新:
RewriteEngine 在
RewriteRule ^/(.*)$ /test/$1 [NS]上
答案2
如果 Adrian Lang 的示例都不起作用,您可以尝试类似的方法。如果文件存在,重写条件将阻止它进行进一步的重写。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.*)$ /test/$1