使用正则表达式重写htaccess的reRriteRule

时间:2013-05-02 07:31:55

标签: regex .htaccess

我需要将/start/index.html和其他所有内容(/任何内容)重定向/启动到/index.html

对此有什么正确的正则表达式重写?

由于

2 个答案:

答案 0 :(得分:1)

需要重写条件:

RewriteRule ^start/?$ /start/index.html [R]

RewriteCond %{REQUEST_URI} !^/start/?$
RewriteRule ^([a-zA-Z0-9_-]+)/?$ /index.html [R]

请考虑关于[R]标记的此链接:https://stackoverflow.com/a/15999177/2007055

答案 1 :(得分:1)

  

我需要将/start重定向到/start/index.html以及其他所有内容( /任何)重定向到/index.html。对此有什么正确的正则表达式重写?

您可以在根目录下的一个.htaccess文件中尝试:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}  !index\.html      [NC]
RewriteRule ^start/(.*)  /start/index.html?$1 [L,NC,QSA]

在规则中,anything作为查询传递给index.php,QSA标志在存在时添加传入的。{/ p>

要将anything作为路径段传递,请将?$1替换为/$1并删除QSA标记。它没用,因为任何传入的查询都会自动附加。

对于永久重定向,将[L,NC,QSA]替换为[R = 301,L,NC,QSA]