2015-11-14 154 views
2

我有一個PHP網站,有一些網頁:虛擬目錄htaccess以及URL重寫

www.example.com/news 
www.example.com/people 
www.example.com/music 

在每個頁面是內容概述。例如,如果您點擊www.example.com/news上的鏈接,則可以使用模板打開該網址的文章(www.example.com/article.php?url='example-of-article-url')

對於每個頁面都需要重寫。顯示的網址應該是www.example.com/news/example-of-article-url ,這應該訪問article.php文件。新聞目錄是虛擬的。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+)$ $1.php [L,QSA] 

我一直在努力爲:

RewriteRule ^news/(.*) article.php?url='$1' [R=301,L] 
的www.example.com/news,www.example.com/people,www.example.com/music正在此代碼重寫

但是,當這加載,CSS和圖像不是。生成的內容認爲它位於/ news /目錄中,因此無法找到其他文件。由於SEO原因,我無法使用規範網址。

回答

1

您應該添加:

<base href="/"/> 

在你<head>部分。

+0

是的,偉大的方法。這也起作用。 – Miguel

1

,首先不要忘了,在起步補充一點:

RewriteEngine On 

從取出Qoutes「$ 1」你的最後一行,並嘗試以下替代方法。

RewriteEngine On 
RewriteRule ^news/(.*)$ article.php?url=$1 [R=301,L] 

要與整個目錄到你的位置的內容重定向:

RewriteEngine On 
RewriteRule ^news/(.*)$ article.php?url=$1 [R=301,NC,L] 

或者你可以在開始斜槓做這種方式太:

重定向整個文件夾(新聞)到您的新位置:

RewriteEngine On 
RewriteRule ^/?news/(.*)$ article.php?url=$1 [R=301,L] 

RewriteEngine On 
RewriteRule ^/news/(.*)$ article.php?url=$1 [R=301,L] 

要與整個目錄到你的位置的內容重定向:

RewriteEngine On 
RewriteRule ^/news/(.*)$ article.php?url=$1 [R=301,NC,L] 

祝您好運