2011-03-22 199 views
0

我新到URL重寫:在htaccess中刪除子目錄&刪除.php擴展不工作?

首先,這裏就是我試圖完成: 當前網址:www.example.com/subdirectory1/subdirectory2/something.php

期望網址:WWW。 example.com/subdirectory1/something/

而且,子目錄2的名稱是固定的。

可能嗎?

我目前的htaccess只是刪除「.php」,但也無法正常工作。 (任何想法如何調試htaccess ??)

RewritEngine on 

RewriteCond %{REQUEST_URI} !\.php$ [NC] 

RewriteCond %{REQUEST_URI} [^/]$ 

RewriteRule ^(.*)$ $1.php [L] 

RewriteRule ^(?!subdirectory1/|subdirectory2/)(.+)$ subdirectory1/$1 [L] 

謝謝。

回答

0

您的第一個問題是RewritEngine on。你錯過了一個e。應該是RewriteEngine on

試試這個:

RewriteEngine on 

# Remove .php 
RewriteCond %{REQUEST_URI} \.php$ 
RewriteRule ^([^/]+)/fixed/([^/]+).php$ /$1/$2/ [R=301,L] 

# Rewrite "friendly" URL into php. 
RewriteRule ^([^/]+)/([^/]+)/?$ /$1/fixed/$2.php [L] 

這僅適用於正是你說什麼作品。固定總是一樣的。用正確的值替換它。

用戶轉到:www.example.com/1234/fixed/5678.php。他被重定向到www.example.com/1234/5678

用戶轉到www.example.com/1234/5678。在服務器上,這變成www.example.com/1234/fixed/5678.php

類似於www.example.com/1234/5678/9abcd將不起作用。 (超過兩級目錄。)

+0

Opps,抱歉,這是我的錯字錯誤在這裏。 – 2011-03-22 04:07:12

+0

我得到了404錯誤。我確實將「固定」值更改爲我的稱爲「控制器」的確切值。 – 2011-03-22 04:08:52

+0

我犯了一個錯誤。我在幾處寫了'([^ /])+',但它應該是'([^ /] +)'。我編輯了這篇文章。現在試試。 – nitro2k01 2011-03-22 04:20:06