2009-11-21 33 views
2

實例網址:忽略乾淨的URL的符號鏈接在.htaccess

example.com/user

/用戶既是一種符號鏈接的目錄和一個有效的URL內容在我的網站。我用戶部落路線請求的內容和所有請求到網站通過index.php。

我現在有一個.htaccess文件看起來像:

Options +FollowSymlinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example.com$ [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] 

#allow cool urls 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*) index.php [L] 
#allow to have Url without index.php 

但會/用戶列出目錄的內容,而不是網頁。有沒有可能忽略符號鏈接?

附加也就是說,如果你要求:

example.com/user/some-css-file.css

這是一個不應忽視的一個有效的請求。那麼是否可以通過符號鏈接來請求文件,但基本符號鏈接本身可以被忽略並轉到index.php?

謝謝:)

回答

1

當請求/user/時,由於!-d實際上是一個現有目錄,所以對!-d的測試將失敗。你可能想使用它,而這一條件,只允許現有的文件,但沒有目錄的直接訪問:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*) index.php [L] 

另外,你可以用!^index\.php$更換模式^(.*)使得對於的index.php沒有按」請求牛逼需要一個文件系統查詢:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule !^index\.php$ index.php [L] 
1

忘記忽略符號鏈接只是創建另一個RewriteRule。 「允許酷網址」規則之前將其放置:

RewriteCond %{REQUEST_URI} ^/user/$ 
RewriteRule (.*) /index.php [L] 

所以http://www.example.com/user/http://www.example.com/user應該去的內容。 [L]應該防止進一步的規則被處理。

+0

感謝 - 我也許應該說是有相當多的符號鏈接(也〜10),所以寧願有這種情況的一個包羅萬象隨着越來越多的符號鏈接會在未來產生太大。 – ed209 2009-11-21 12:53:49