RewriteRule匹配基本路径/ url

时间:2014-02-06 14:04:59

标签: php regex apache .htaccess mod-rewrite

我希望RewriteRule与我网站的“基本”网址/路径匹配。

我的基本网址,一旦生成,就会像http://www.site.com,但目前在开发中http://localhost/dev/site/.htaccess文件位于“site”文件夹中。

在以下示例中,第一个RewriteRule是问题,我无法让它工作。第二和第三个RewriteRules工作正常。如果我到达基本路径/ URL,我需要它带到index.php?l = default& rte = index。

感谢。

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^/$ index.php?l=default&rte=index [NC,L]
RewriteRule ^([a-zA-Z]{2})/$ index.php?l=$1&rte=index [NC,L]
RewriteRule ^([a-zA-Z]{2})/([a-zA-Z-]+)$ index.php?l=$1&rte=$2 [NC,L,QSA]

1 个答案:

答案 0 :(得分:0)

请尝试以下规则:

Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteRule ^/?$ index.php?l=default&rte=index [QSA,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule ^([a-zA-Z]{2})/?$ index.php?l=$1&rte=index [QSA,L]

RewriteRule ^([a-zA-Z]{2})/([a-zA-Z-]+)/?$ index.php?l=$1&rte=$2 [QSA,L,QSA]