2013-12-19 64 views
2

我對Rewrite規則有問題。我想domain.xx/example 重定向到domain.xx/index.php?content=exampleapache2上的RewriteRule

這將實際工作,但我也有一個相同的文件夾(domain.xx/example.php)使用example.php命名的文件。每當我打開domain.xx/example時,服務器將打開example.php而不是將我重定向到index.php?content=example

當我刪除example.php文件時,mod-rewrite已打開並正常工作。

RewriteEngine On 
RewriteBase/
RewriteRule ^example$ index.php?content=example [NC,L] 

回答

0

那是因爲MultiViews選項。

增加您的.htaccess的頂部這一行:

Options -MultiViews 
-1

添加到您的htaccess文件:

# if a directory or a file exists, use it directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

所以使用example.php將直接送達,然後加入您的規則。

+0

其實,這似乎做什麼,我需要的oposite。 example.php文件確實存在,但我不打開它。服務器應該重定向到index.php?content = example,而不是打開example.php – user3119447

0

重寫規則是正則表達式,所以你只需要刪除結束字符同時匹配例子,使用example.php

RewriteRule ^example index.php?content=example [NC,L] 
+0

這肯定會進入正確的方向,謝謝!打開domain.xx/example現在給我一個白頁,而domain.xx/example.foo將我重定向到index.php文件。東西仍然缺失......但我到達那裏:) – user3119447

+0

你有一個名爲'/ example'的實際文件夾? –

+0

不,只是文件example.php ....沒有其他名稱的例子。 – user3119447