2014-03-29 39 views
0

我們有一個新網站public_html在一個新的目錄中,如下所示黃色。 我們需要規則添加到new_site/.htaccess滿足以下三個規則:如何刪除URL中的「/index.php?」,「.php」和強制結尾斜槓「/」? (htaccess重寫規則)

  1. 從URL中
  2. 部隊最多的URL(不包括爲.jpg,.png結束斜線/年底拆除.php。 ..)
  3. 從各種URL的中間刪除​​。

enter image description here

最可能的是,這會是什麼我試着問:

目前,

domain.com/ns/abc.php 
domain.com/ns/abc_abc.php 
domain.com/ns/index.php?/abc 
domain.com/ns/abc/index.php?/abc 
domain.com/ns/abc/abc/index.php?/abc/123 
domain.com/ns/abc/abc/index.php?/abc/abc/123/123 

domain.com/ns/abc/ 
domain.com/ns/abc_abc/ 
domain.com/ns/abc/ 
domain.com/ns/abc/abc/ 
domain.com/ns/abc/abc/abc/123/ 
domain.com/ns/abc/abc/abc/abc/123/123/ 

我們也嘗試了一些以前發佈規則做t他的任務。如

Options +FollowSymlinks -MultiViews 
RewriteEngine on 
RewriteBase /ns 

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

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC] 
RewriteRule^%1 [R=301,L] 

上述代碼幫助我們並刪除index.php。但是,我們無法弄清楚如何刪除​​。

任何意見/建議表示讚賞!謝謝!

+1

漂亮的URL#1和#3是相同的,但他們支持不同的URL,這是不能真的發生了。 – anubhava

回答

1

下面應該讓你實現這一點:

RewriteEngine On 
RewriteRule ^ns/(.*)/(.*)/index.php/(.*)/(.*)/(.*)/(.*)$ /ns/$1/$2/$3/$4/$5/$6/ [R,L] 
RewriteRule ^ns/(.*)/(.*)/index.php/(.*)/(.*)$ /ns/$1/$2/$3/$4/ [R,L] 
RewriteRule ^ns/(.*)/index.php/(.*)$ /ns/$1/$2/ [R,L] 
RewriteRule ^ns/index.php/(.*)$ /ns/$1/ [R,L] 
RewriteRule ^ns/(.*).php$ /ns/$1/ [R,L] 

編輯: 第二個嘗試:

RewriteEngine On 
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /ns/(.*)/(.*)/index\.php\?/(.*)\ HTTP 
RewriteRule^/ns/%2/%3/%4\? [R,L] 
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /ns/(.*)/index\.php\?/(.*)\ HTTP 
RewriteRule^/ns/%2/%3\? [R,L] 
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /ns/index\.php\?/(.*)\ HTTP 
RewriteRule^/ns/%2\? [R,L] 
RewriteRule ^ns/(.*).php$ /ns/$1/ [R,L] 
+0

感謝您的回答!我試了一下,但沒有奏效。實際上,在index.php之後還有一個** **,我也試過,並且沒有工作。再次感謝! @Howlin – 1453939

+1

您確實需要在htaccess文件開始時使用'RewriteEngine On'。對於'index.php?',我錯過了那個。如果可以添加,我會嘗試編輯。 – Howli

+0

是的,我有RewriteEngine On! @Howlin – 1453939

相關問題