当前网址: http://broom.xyz/index.php?tag=C/santa
注意:Tag' C / santa'是一个单一的动态值 它可以改为像F / fanta'或者' M / Manta'。
我的代码:
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^/]*)$ /index.php?tag=$1 [L]
此代码生成500内部服务器错误。这是错误日志:
[Fri Apr 07 13:33:10.469218 2017] [core:alert] [pid 4202] [客户 47.11.122.64:52755] /var/www/html/workspace/broom/.htaccess:无效的命令' RewriteEngine',可能拼写错误或由模块定义 包含在服务器配置中[Fri Apr 07 13:40:31.595944 2017] [core:alert] [pid 4185] [客户47.11.122.64:53076] /var/www/html/workspace/broom/.htaccess:命令无效 ' RewriteEngine',可能拼写错误或由模块定义 包含在服务器配置中
答案 0 :(得分:1)
您的规则模式与uri C / Santa 不匹配,但匹配 CSanta 这是因为您排除了 / 在您的模式中 ^([^ /] *)。你需要修复它,以便它可以接受uri中的任何字符。
将RewriteRule行替换为:
RewriteRule ^(.+)$ /index.php?tag=$1 [L]