.htaccess重定向L,NC,QSA不按计划工作

时间:2015-10-26 17:05:33

标签: php apache .htaccess mod-rewrite redirect

所以我在我的htaccess中得到了这些行

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^de/exposes/(.*)$ /exposes/?l=de_DE&m=$1 [L,NC,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]
</IfModule>

并关注网址:

dev.example.com/de/exposes/whatever

htaccess检查程序说,它按计划工作,并重定向到dev.example.com/de/exposes?l=de_DE&m=whatever。但它没有。总是有404错误。

如果我将[L,NC,QSA]更改为[L,P],则表示:找不到对象。

如果我将[L,NC,QSA]更改为[L,R],它会转到正确的网址,但会更改网址,这就是我想要避免的内容。

有什么想法吗?

Greetz和谢谢

1 个答案:

答案 0 :(得分:0)

这样做:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

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

RewriteRule ^(de/exposes)/(.+)$ $1/?l=de_DE&m=$2 [L,NC,QSA]

RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]
</IfModule>