如何使用 mod_rewrite 扩展 URL?

如何使用 mod_rewrite 扩展 URL?

我需要进行以下 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

相关内容