2014-06-26 142 views
0

嗯,我有我的.htaccess一個問題,我想改寫這個:htaccess的,正則表達式,重寫URL

http://domain.com/a/thread-103518.html#103518

這個

http://domain.com/a/103518

換句話說...我想刪除「t hread-「以及」。「之後的所有內容。該/ A /必須是可變的......還有其他論壇與/ BLA /和/碼/

你對我有線索?謝謝

我現在的.htaccess:

的RewriteCond%{} REQUEST_FILENAME -d
的RewriteCond %{} REQUEST_FILENAME -f .PHP重寫規則
^$ $ 1.PHP

(*)。

的RewriteCond%{THE_REQUEST}^[AZ] + \的index.php
重寫規則 ^的index.php /?(.*)/ $ 1 [L,R = 301]

+0

**請澄清**這URL是「野生進來」的人,這是你想要的.htaccess的_output_。當期望的行爲實際上是相反的時候,我經常看到請求「將[動態格式] URI重寫爲[SEO格式]」。如果'thread-103518.html'是一個真實的頁面,並且'103518'是SEO格式,那麼您希望將後者重寫爲前者。 –

回答

1

此添加到.htaccess文件在您DOCUMENT_ROOT

RewriteEngine On 
RewriteRule ^([^/]+)/thread-(\d+) $1/$2? [DPI,L,R] 

在Apache 2.2的測試和2.4 :)

這是假設的mod_rewrite是安裝爲htaccess的文件被激活。 如果你不能確定,要檢查是否安裝了mod_rewrite,看看安裝的模塊中的phpinfo(); 默認情況下,輸出的列表中,則mod_rewrite未對htaccess中啓用。如果您正在管理自己的服務器上,打開httpd.conf 並確保Web根目錄目錄塊包含下列行之一:AllowOverride FileInfoAllowOverride All

+0

感謝您的快速回答...重定向工作,但現在我有一個DC問題。 我的.htaccess 的RewriteCond%{} REQUEST_FILENAME!-d 的RewriteCond%{REQUEST_FILENAME} \ PHP -f 重寫規則^(。*)$ $ 1.PHP 的RewriteCond%{} THE_REQUEST^[AZ] + \ /指數\ .PHP 重寫規則^索引\ .PHP /?(.*)/ $ 1 [L,R = 301] 重寫規則^([^ /] +)/線程 - (\ d +)$ 1/$ 2? [DPI,L] http://domain.com/a/thread-103518.html#103518和 http://domain.com/a/103518現在是可能的,但我只想要第二個URL –

+0

我以爲你說'http:// domain.com/a/thread-103518.html#103518'應該重定向到'http:// domain.com/a/103518'。不理解,那不再是問題了? – zx81

+0

該鏈接現在可以工作,但您可以通過http:// domain進入該網站。com/a/thread-103518.html#103518和http://domain.com/a/103518。點擊http://domain.com/a/thread-103518.html#103518鏈接,我想要在http://domain.com/a/103518 –