2014-12-20 107 views
1

這是我的.htaccess。這適用於system.php上的系統生成URL。但是當我爲article.php,product.php,page.php,contact.php添加額外的行時,它不起作用。任何想法添加多個國防部重寫。htaccess刪除多個系統文件擴展名上的.php

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example.co.uk [NC] 
RewriteRule ^(.*)$ http://www.xampleco.uk/$1 [L,R=301] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 
RewriteRule ^index\.php$ http://www.xample.co.uk/ [R=301,L] 

RewriteEngine On 
RewriteBase/

# Redirect .php URLs to rewritten URLs 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)\.php$ $1 [L,QSA,R=301] 

# Rewrite URLs for processing by router (section.php) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)$ section.php?url=$1 [QSA,L,NC] 

# These are working 
Redirect 301 /files/example.pdf http://www.example.co.uk 
Redirect 301 /section.php/11/1/life-drawing http://www.example.co.uk 

# This is working, but leaves a trail of the url onto the redirect, ok but would be nice to be cleaner 
Redirect 301 /section/116/1/drawings http://www.example.co.uk 

回答

0

請勿混用mod_alias那些mod_rewrite規則,並保持內部問題之前重定向規則。

Options -MultiViews 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} ^example.co.uk [NC] 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301] 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 
RewriteRule ^index\.php$ http://www.xample.co.uk/ [R=301,L] 

RewriteRule ^files/example\.pdf$/[L,R=302,NC] 
RewriteRule ^section\.php/11/1/life-drawing/?$/[L,R=302,NC] 
RewriteRule ^section/116/1/drawings/?$/[L,R=302,NC] 

# To internally forward /dir/file to /dir/file.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC] 
RewriteRule ^(.+?)/?$ $1.php [L] 

# Rewrite URLs for processing by router (section.php) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^article/(.+)$ article.php?url=$1 [QSA,L] 

# Rewrite URLs for processing by router (section.php) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ section.php?url=$1 [QSA,L] 
+0

非常感謝您的寶貴回覆。它的工作原理,但不是contact.php和page.php文件,如果我通過路由器(section.php) 的RewriteCond%{} REQUEST_FILENAME!section.php後添加他們像下面 #重寫URL處理-f 重寫規則^ (。+)$ section.php?url = $ 1 [QSA,L] #重寫路由器處理的URL(page.php) RewriteCond%{REQUEST_FILENAME}!-f RewriteRule ^(。+)$ page。 php?url = $ 1 [QSA,L] #重寫路由器處理的URL(contact.php) RewriteCond%{REQUEST_FILENAME}!-f RewriteRule ^(。+)$ contact.php?url = $ 1 [QSA ,L] http://www.celiadickson.co.u k/ – Puzzel

+0

好吧,我想要做的就是擺脫所有網址的.php。系統在section.php上生成頁面。 article.php。 contact.php和page.php,但不能使用多視圖,然後重定向不能正常工作。這些來自cms的網址http://www.celiadickson.co.uk/section/2/1/wood-relief-carvings – Puzzel

+0

非常感謝你 – Puzzel