正如标题所说,我如何使用.htaccess和mod_rewrite来改变它?
“页/ 123 /一些文本” 至 “showpage.php指数= 123&安培;标题=一些文本”
我从这开始:
RewriteEngine On
Options +FollowSymLinks
RewriteBase /
RewriteCond %{REQUEST_FILENAME} pages/(.*)
RewriteRule (.*) /showpage.php?index=%1 [R]
这允许我至少获取索引的参数,但是除非我创建一个名为pages的空目录,否则会失败。
答案 0 :(得分:1)
您只需在RewriteRule
本身中提取网址的相关部分:
RewriteEngine On
Options +FollowSymLinks
RewriteBase /
RewriteRule ^pages/([^/]+)/(.+)$ /showpage.php?index=$1&title=$2 [R]
请注意,R
标志会导致外部重定向,这是您想要的吗?如果没有,你应该删除它:
RewriteRule ^pages/([^/]+)/(.+)$ /showpage.php?index=$1&title=$2
或者,如果您确实需要外部重定向,为了安全起见,最好使用L
标志,以便立即应用重定向(如果重定向是永久性的,则添加301状态):< / p>
RewriteRule ^pages/([^/]+)/(.+)$ /showpage.php?index=$1&title=$2 [R=301,L]
此外,如果您希望标题片段是可选的,您也可以这样做:
RewriteCond &title=$3 ^(&title=.+)$
RewriteRule ^pages/([^/]+)(/(.+))?$ /showpage.php?index=$1%1