在我的網站的根,我有以下重定向到非WWW域名我如何獲得兩個htaccess重寫規則以「一起玩好」?
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{http_host} ^www\.notails\.com [NC]
RewriteRule ^(.*)$ http://notails.com/$1 [R=301,NC]
在一個名爲「攝影」我有這樣子......
RewriteEngine on
RewriteRule ^show/([^/\.]+)/([^/]+)$ show.php?section=$1&photoid=$2 [L]
任何內拍攝的文件夾忽略www刪除規則。我如何獲得這兩條規則這兩個適用於攝影文件夾內的文件夾/文件?
而且......我的根htaccess文件有這個...
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
難道是干擾?我有一個自我託管的WordPress博客,但它不在網站的根目錄,它在一個名爲'blog'的子文件夾中,所以我不知道爲什麼這個規則在我的根目錄的htaccess文件中。我可以/應該移動它嗎?
編輯:只要指出,萬一它不明顯 - 當我提到htaccess和mod_rewrite的東西時,我是一個完整的noob。子文件夾中的htaccess文件是否覆蓋比它更接近根的任何htaccess文件?還是htaccess的內容組合?
編輯2:我試圖移動第二規則相同htaccess文件作爲WWW刪除規則按照下面的代碼...
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{http_host} ^www\.notails\.com [NC]
RewriteRule ^(.*)$ http://notails.com/$1 [R=301,NC]
RewriteRule ^photography/show/([^/\.]+)/([^/]+)$ photography/show.php?section=$1&photoid=$2 [L]
如果我然後去我的攝影之一它解析爲預期的網址(例如http://notails.com/photography/show/pointofayre/260),但頁面是404.
如果我手動添加'www'到它它undoes另一個規則...(http://notails.com/show.php?section=pointofayre & photoid = 260)並從中刪除'攝影/'。
我曾嘗試移動規則的根源,加入「攝影/」,但事情變得更糟。也許我做錯了,我會再試一次/弄糟它。我也會嘗試繼承規則。 – MrVimes
@MrVimes移動它後顯示規則 - 也許你做錯了。這也取決於你的「攝影」文件夾有多深 - 它只是ROOT /攝影嗎?如果是這樣 - 這應該做的工作:'重寫規則^攝影/顯示/([^/\.]+)/([^/]+)$攝影/ show.php?部分= $ 1和photoid = $ 2 [L] '。無論如何 - 請記住,規則的順序很重要 - 如果你把它放在一個錯誤的地方,它可能永遠不會到達。更好地發佈您的整個.htaccess內容 – LazyOne
也..攝影是直接根下面(http:// notails。com/photography) – MrVimes