我的请求非常简单。使用我目前的.htaccess的条件和规则在这里给出:.htaccess删除* .php丢弃作为GET参数传递的URL的参数
# Remove .php extension from URLS
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
# Redirect from *.php to URL without *.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule^%1 [R,L]
问题是,当我通过包含* .PHP参数1 = A &参数2 = B作为一个参数,它扔掉“参数1网址? = A & param2的= B “
例如:我想重定向到 : ”/views/users/login.php?redirect=/views/home.php?id=1“ 在所得:”/ views/users/login?redirect =/views/home“,它抛出”?id = 1“,所以现在我无法访问该参数。
如何重写我的规则以保持这些参数?
任何建议,欢迎和非常感谢。
更新(2015年9月16日):
卸下
RewriteRule ^(.*)\/index\.php$ $1 [R=301,L,NC]
由于它是不相关的。
对不起,这并没有解决问题。无论如何,我删除了该行,因为它是无关紧要的。我试过RewriteRule ^([^ \。] +)$ $ 1.php [R = 301,NC,L,QSA],但也不起作用。 –
我的不好,那就是: ^([^ \。] +)$ $ 1.php [QSA,R = 301,NC,L] –
实际上这个顺序并不合适我认为这是额外的空间破坏它 –