我在.htaccess
中使用以下配置尝试将http://www.mysite.com/subdir/page.php?param=4
格式的网址重写为http://www.mysite.com/subdir/page/param/4
:
# Turn on the rewrite engine
Options +FollowSymlinks
RewriteEngine on
# Request routing
RewriteRule ^([a-zA-Z_-]*)$ index.php?name=$1 [nc,qsa]
但是,当我访问该页面时,我收到内部服务器错误。配置有问题吗?
编辑:我已将其更新为以下内容,但现在它似乎没有进行任何重写,当我尝试使用http://www.mysite.com/subdir/param/2
这样的网址时,会给我404;
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^name=([0-9]+)$ [NC]
RewriteRule ^project-testing/ws/index.php$ /project-testing/ws/name/%1 [R=301,NC,L]
答案 0 :(得分:0)
您需要使用%{QUERY_STRING}
来读取您的网址的查询字符串,以便根据它进行重定向。
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^param=([0-9]+)$ [NC]
RewriteRule ^subdir/page.php$ subdir/page/param/%1 [R=301,NC,L]
或者如果您想要访问:
http://www.mysite.com/subdir/page/param/4
显示以下内容:
http://www.mysite.com/subdir/page.php?param=4
那就是这样的:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteRule ^subdir/page/([^/]+)/([^/]+)$ subdir/page.php?$1=$2 [NC,L]