2010-09-14 47 views
0

正如標題所說,我該如何使用.htaccess和mod_rewrite來改變它?mod_rewrite +「pages/123/some-text」 - >「showpage.php?index = 123&title = some-text」

「頁/ 123 /一些文本」 到 「?showpage.php指數= 123 &標題=一些文本」

我已經開始用這樣的:

RewriteEngine On 
Options +FollowSymLinks 
RewriteBase/

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

這允許我至少爲索引獲取參數,但是除非我創建一個名爲pages的空目錄,否則失敗。

回答

1

你可以只提取URL的相關部分在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個狀態如果重定向是永久性的):

RewriteRule ^pages/([^/]+)/(.+)$ /showpage.php?index=$1&title=$2 [R=301,L] 

另外,如果你想要的標題塊是可選的,你也可以這樣做:

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

是的,我希望外部重定向而不是內部使鏈接在頁面上與瀏覽器的角度相對於/而不是/頁面/。謝謝! – Dmi 2010-09-14 22:03:29

相關問題