2014-02-08 112 views
1

我試圖實現一些htaccess重寫規則。但是在htaccess中不是一個職業。.htaccess重寫規則與DocumentRoot子域

我有一個子域網關(如描述:.htaccess and rewrite sub domains

現在我想用搜索引擎友好的URL。在這種情況下,網關有一些子文件夾,即電子郵件。

http://gateway.example.com/email/Param1/Param2/

此網址應該重寫http://gateway.example.com/email/index.php?hash=Param1&hash2=Param2

在電子郵件文件夾我已經創建了包含以下內容的.htaccess文件:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.* - [L] 
RewriteRule ^/(.*)/(.*)/ index.php?hash=$1&hash2=$2 

當請求http://gateway.example.com/email/Param1/Param2/現在我得到一個404什麼是錯的規則?

+0

確定,所以去http://gateway.example.com首先打算如何工作?你的文檔根源是什麼? –

+0

@PanamaJack是的,它確實有效。 –

回答

1

你應該做這種方式

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^/?([^/]*)/([^/]*)/ /email/index.php?hash=$1&hash2=$2 [L] 
0

你可以試試這個。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^/([^/]*)/([^/]*)/ index.php?hash=$1&hash2=$2 

*您需要從非改變的AllowOverride所有這樣的配置Apache(httpd的)接受UrlRewrite:

<Directory "/var/www/html"> 
Options Indexes FollowSymLinks 
AllowOverride all 
Order allow,deny 
Allow from all 
</Directory> 
+0

不幸的是沒有工作。 –

+0

你在你的apache服務器上允許.htaccess嗎? – ImadOS

+0

*你需要配置apache(httpd)接受UrlRewrite,方法是將AllowOverride從非all更改爲all(對於centos,位於/etc/httpd/config/httpd.conf): 期權指數關注鏈接 AllowOverride全部 訂單允許,拒絕 全部允許 – ImadOS