繁体   English   中英

htaccess重写规则,还是PHP问题?

[英]htaccess rewrite rules, or a PHP issue?

我正在编写一个主要仅由我自己使用的小型Web应用程序,因此我对精美的框架和页面模板等不感兴趣。

我需要能够重写以下网址:

/?page=parks
/?page=park&id=1

/parks
/park/1

现在,我已经非常了解以下规则:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f

RewriteRule ^([^/]*)$ /?page=$1 [L]
RewriteRule ^([^/]+)/([^/]+)$ /?page=$1&id=$2 [L]

这适用于我拥有的大多数页面,但是如果我执行URL /设置,则会中断。 如果我回显$ _GET ['page'],则会得到“ inc”。 我不知道为什么。 这是PHP问题,还是我的规则错误?

为此,您不需要RewriteCond %{REQUEST_FILENAME}\\.php -f条件。

您可以使用:

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

RewriteRule ^([^/]+)/?$ /?page=$1 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/?$ /?page=$1&id=$2 [L,QSA]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM