我正在开发一个PHP应用程序,我需要在get请求中使用正斜杠代替问号。像:
www.example.com/article?aid=10&aname=my-article
应改为
www.example.com/article/10/my-article
以下是我的.htaccess:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ http://example.com/$1 [R=301,L]
# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/$1 [R=301,L]
# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^articles/(.*)$ articles?q=$1 [L,QSA,B]
我已经尝试了很多,但无法找到解决方案。怎么能这样做?
答案 0 :(得分:0)
你可以做那样的事情
RewriteRule ([^/\.]+)/([^/\.]+)/?$ page.php?level1=$1&level2=$2 [L]
level
然后用符号/
然后在假设称为page.php
的页面中,你可以这样做:
$firstParameter = $_REQUEST["level1"];
在您的情况下,您可以这样做:
RewriteRule article/([^/\.]+)/([^/\.]+)/?$ article?aid=$1&aname=$2 [L]
然后您的网址将为/article/foo/bar
N.B。
我通常使用RewriteBase /
对/
进行基本重写,
它是'这么说:
Options +FollowSymLinks
RewriteBase /
RewriteEngine On
答案 1 :(得分:0)
您可以使用此规则将 / article / foo / bar 重写为 / article?aid = foo& aname = bar 在 RewriteEngine
上添加以下右侧RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^article/([^/]*)/([^/]+)/?$ /article?aid=$1&aname=$2 [L,QSA,B]