Mod rewrite mod#u rewrite+&引用;第/123页/部分文字“-&燃气轮机&引用;showpage.php?索引=123&;标题=一些文本“;

Mod rewrite mod#u rewrite+&引用;第/123页/部分文字“-&燃气轮机&引用;showpage.php?索引=123&;标题=一些文本“;,mod-rewrite,Mod Rewrite,正如标题所说,我如何使用.htaccess和mod_rewrite来改变这一点 “页面/123/一些文本” 到 “showpage.php?index=123&title=一些文本” 我从以下几点开始: RewriteEngine On Options +FollowSymLinks RewriteBase / RewriteCond %{REQUEST_FILENAME} pages/(.*) RewriteRule (.*) /showpage.php?index=%1 [R] 这允许

正如标题所说,我如何使用.htaccess和mod_rewrite来改变这一点

“页面/123/一些文本” 到 “showpage.php?index=123&title=一些文本”

我从以下几点开始:

RewriteEngine On
Options +FollowSymLinks 
RewriteBase /

RewriteCond %{REQUEST_FILENAME} pages/(.*)
RewriteRule (.*) /showpage.php?index=%1 [R]

这允许我至少获取索引的参数,但除非我创建一个名为pages的空目录,否则此操作将失败。

您只需在
重写规则本身中提取URL的相关部分即可:

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状态):

此外,如果您希望标题是可选的,您也可以这样做:

RewriteCond &title=$3 ^(&title=.+)$
RewriteRule ^pages/([^/]+)(/(.+))?$ /showpage.php?index=$1%1

是的,我希望外部重定向而不是内部重定向,以便页面上的链接从浏览器的角度相对于/而不是/pages/。谢谢
RewriteCond &title=$3 ^(&title=.+)$
RewriteRule ^pages/([^/]+)(/(.+))?$ /showpage.php?index=$1%1