我正在尝试在.htaccess中启用mod-rewrite来实现REST样式的URL。我正在开发一个测试环境(新的cpanel帐户)。这是.htaccess:
RewriteEngine on
#REMOVE THIS LINE ON SITE LAUNCH!
RewriteBase /~myNewAccount/
#Hide .php extensions for cleaner URLS
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
Options All -Indexes
我可以使用的URL如下所示:
www.example.com/~myNewAccount/index.php/id/50
我可以在这里访问PATH_INFO,但是当我尝试这样做时:
www.example.com/~myNewAccount/index/id/50
...我收到500内部服务器错误。我已经尝试通过Gumbo实现solution found here,但这样做很糟糕。
关于可能导致这种情况的想法?
答案 0 :(得分:2)
尝试此规则:
RewriteRule ^index(/.*)?$ index.php$1 [L]
或者,如果您不希望 index 完全位于网址路径中:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php/$0 [L]