2

处理我正在与打开永久链接的 wordpress 网站并行构建的应用程序。因此,稍后在 htaccess 中还有其他重写来处理 wordpress 的所有方面。但是,我正在尝试在它到达之前执行一些我自己的重写。- 当然在我的之后使用 [L]。一切都很完美,直到我尝试在末尾添加允许斜线或不斜线的选项(并且仍然匹配)。

这是在此服务器上引发 500 错误的示例:

RewriteRule ^app/([^/]+)/?$ /app/$1\.php [L,QSA]

http://<domain>.com/app/login
or
http://<domain>.com/app/login/

但是下面的工作很好,并且高于 htaccess 中的前一个示例。

RewriteRule ^app/p/([^/]+)/?$ /app/page.php?page_slug=$1 [L,QSA]

http://<domain>.com/app/p/styles
or
http://<domain>.com/app/p/styles/

我尝试过很少/没有成功的变化。

RewriteRule ^app/([^/]+)/{0,1}$ /app/$1\.php [L,QSA]
and
RewriteRule ^app/([^/]+)[p]/[\p]?$ /app/$1\.php [L,QSA]
4

1 回答 1

2

这是因为您的目标位置/app/$1.php与源位置完美匹配^app/([^/]+)/?$。因此页面被重定向到自身。

RewriteCond %{REQUEST_URI} !\.php
RewriteRule ^app/([^/]+)/?$ /app/$1.php [L,QSA]
于 2011-01-20T07:36:03.910 回答