我已经在在线测试人员中测试了以下模式,并且每个人都能正常工作。此外,规则适用于其他类似的迭代没有问题。
RewriteCond %{REQUEST_URI} !404 [NC]
RewriteRule ^manager/services/([\w\-]+) manager/services/controller.php?PAGE=$1 [QSA,L,R=302]
对于REQUEST URI(无法将URL atm设为仍然不安全):
/manager/services/get-items
但是这条规则引发了404错误。控制器绝对存在,我可以手动访问它没有问题..
我能想到的唯一另一种可能性是与目录级别htaccess的某种交互,它只是作为允许,拒绝我的IP地址设置但没有重定向。
答案 0 :(得分:1)
将它放在root中的htaccess中并尝试一下。
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^manager/services/([^/]+)/? /manager/services/controller.php?PAGE=$1 [QSA,L]
我假设你已经启用了htaccess,因为你说你有其他内容,但要确保它在Apache配置中设置为AllowOverride All
。
编辑:
或者您可以尝试将代码添加到manager文件夹htaccess文件中。
RewriteEngine On
RewriteBase /manager/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^services/([^/]+)/? services/controller.php?PAGE=$1 [QSA,L]
答案 1 :(得分:0)
对于后人,我在GoDaddy服务器上的Web根目录中有一个名为“services”的目录。有些东西正在混乱,导致与该文件夹相关的任何错误混合了404和500。
将文件夹重命名为web_services解决了这个问题。