我的网址如下所示:www.example.com/?content=somefile.php
。
模式是:始终www.example.com/?content=
,而不是像somefile.php
这样的文件,有时还有一些获取参数。
有没有办法使用www.example.com/somefile.php
代替www.example.com/?content=somefile.php
?
我已经尝试了以下内容:
RewriteEngine On
RewriteRule ^([^/]*)$ /?content=$1 [L]
但是我收到以下错误消息:
内部服务器错误
服务器遇到内部错误或配置错误 无法完成您的请求。
请联系服务器管理员,[无地址]并通知 他们发生错误的时间,以及你可能做过的任何事情 可能导致错误。
有关此错误的详细信息可能在服务器错误中可用 日志中。
Apache / 2.2.14(Ubuntu)服务器,网址为www.example.com端口80
有人能帮助我吗?
答案 0 :(得分:1)
您可以使用此规则来避免内部服务器错误:
RewriteEngine On
# if request is not for image/css/js files
RewriteCond %{REQUEST_URI} !\.(?:jpe?g|gif|bmp|png|ico|tiff|css|js)$ [NC]
# skip if we already have ?content= in URL
RewriteCond %{QUERY_STRING} !(^|&)content= [NC]
# rewrite to ?content=
RewriteRule ^([^/]+)/?$ ?content=$1 [L,QSA]
答案 1 :(得分:0)
尝试添加;
RewriteEngine On
RewriteCond %{QUERY_STRING} !(^|&)content= [NC] #taken from anubhava's code
RewriteRule ^([^/]*)$ /?content=$1 [L]
你不应该直接阅读?content 值,这可能很危险。