RewriteRule ^project/([^.]+)/$ /wordpress/wp-content/plugins/pr/cp.php?id=$1 [QSA,L]
我每次申请时都会收到内部服务器错误
谢谢
修改
127.0.0.1/wordpress/project/43928fdsf
redirects to
127.0.0.1/wordpress/wp-content/plugins/pr/cp.php?id=43928fdsf
答案 0 :(得分:0)
你的表情很好,这表明mod_rewrite
没有安装/工作/开启。将代码更改为如下所示:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^project/([^.]+)/$ /wordpress/wp-content/plugins/pr/cp.php?id=$1 [QSA,L]
</IfModule>
这应该可以阻止任何500个错误(如果它们确实mod_rewrite
相关)。如果您的网址重写仍然无效,那么您没有安装/启用mod_rewrite
,在这种情况下您可以install and enable it。
更新
你的RewriteRule末尾有一个正斜杠但你想要匹配像127.0.0.1/wordpress/project/43928fdsf这样的URL,它最后没有正斜杠。只需删除正斜杠,规则应匹配:
RewriteRule ^project/([^.]+)$ /wordpress/wp-content/plugins/pr/cp.php?id=$1 [QSA,L]
从那时起,如果您仍然遇到500错误,请尝试打印PHP文件顶部的$_GET
变量,然后调用exit()
并查看是否仍有问题。这应该有助于缩小问题是PHP还是Apache。
答案 1 :(得分:0)
如果您尝试将单个网址部分与该网络匹配,那么您做错了,因为[^.]+
也会匹配/
。例如:project/a/b/c/
也匹配=&gt; $1
将为a/b/c
另一方面,您是否检查了您正在捕捉的群组?如果您通过参数id
发送的那些值不会导致cp.php
崩溃?