2013-08-30 136 views
1

這裏http://www.freewebhostingarea.com/faq.html發現託管FAQ頁面說:重寫規則似乎被忽略

是的,我們有充分的.htaccess支持。 Mod_rewrite已啓用,您將可以使用永久鏈接或任何其他規則。

所以在我.htaccess文件我有:

Options ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch -Indexes 
#Options -Indexes 
#Options All -Indexes  <------------- I've also tried these commented lines 
ErrorDocument 404 /404.php  
RewriteEngine On  

# Taking the advice of early posters to simplify my two rules into one 
# my current rewrite rule is: 

RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)/?$ viewpost.php?category=$1&number=$2 

# Below were my original re-write rules when I posted this question: 
#RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)$ viewpost.php?category=$1&number=$2 
#RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)/$ viewpost.php?category=$1&number=$2 

唯一可行的線是404頁,我把(4號線),我想我不能阻止目錄列表可能是因爲該服務器不允許覆蓋。

我不能在任何地方發現一個聲明,說我不能,但它是一個免費的主機,所以我就是這麼認爲的。

但他們的FAQ特別聲明我可以使用mod重寫(也許我誤解?)。

當我鍵入:

http://www.mywebsite.com/s/1 

我只是讓我的404頁,而不是它寫入

viewpost.php?etc... 

@ user2734435什麼是您的文件夾結構?

我的大部分php文件都放在我的根文件夾中。我有一個圖片文件夾,我有一個文件夾用於發佈每個類別的內容。

我相信所有相關的文件都是立即顯然與此問題相關的文件夾位於根文件夾中(可能還有其他與我相關的事件,但我試圖覆蓋上面所有的基礎)。我viewpost.php,我的.htaccess我404.php(不是真的,但培訓相關包含在內,因爲這是按預期在該文件中,它工作的唯一行。)上的public_html

域?

這是一個免費的主機。沒有public_html。我可以通過這個虛擬主機訪問的範圍可能是public_html。我將我的索引放在「根」文件夾中,這就是訪問我的域時顯示的內容。

你的php文件在哪裏?

上面描述的「root」文件夾。

你的.htaccess文件在哪裏?

根文件夾。我沒有其他.htaccess文件

你在其他目錄上有任何其他的.htaccess文件嗎?

參見上文。

+0

是否有任何理由來寫同樣的規則兩次? –

+0

第二條規則是不一樣的。我有尾隨/以便/ s/1和s/1 /都會被重寫。那會導致問題嗎?我會嘗試刪除其中一行。 – user2734435

+0

在第一個斜槓後面加上一個斜槓? – Skaparate

回答

1
Options +FollowSymLinks -MultiViews 

RewriteEngine On 
RewriteBase/

ErrorDocument 404 /404.php 
RewriteRule ^([^/]+)/([0-9]+)/?$ /viewpost.php?category=$1&number=$2 [L] 

([^/]+)告訴你想捕捉一切不是/ $ 1。

([0-9]+)告訴你想要捕獲任何數量的數量爲2美元。

這個/?表示最後的/是可選的。

因此,在短期這是規則意味着:

domain.com/anythinghere/anynumberhere 

domain.com/anythinghere/anynumberhere/ 

Rediredts到:

domain.com/viewpost.php?category=anythinghere&number=anynumberhere 
0

試試這個

Options -Indexes +FollowSymLinks -MultiViews 
RewriteEngine On  
RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)/?$ viewpost.php?category=$1&number=$2 
+0

是的。沒有不同。當我執行domain.com/s/1(我在實現我的實際類別和帖子之前,我的簡化測試用例)時,仍然會得到404。爲什麼需要額外的問號?不會讓瀏覽器忽略viewpost.php嗎? (這是我需要傳遞變量的文件) 更多上下文:我使用viewpost.php中的變量來決定顯示哪個帖子 例如。包括$ 1. $ 2.php(顯然我的實現比這個複雜一點,但是你得到了要點: – user2734435

+0

如果htaccess文件在一個文件夾內,那麼把'RewriteBase/WRITE_YOUR_DIR_NAME_HERE /'放在'RewriteEngine on'後面' – user2533445

+0

我的htaccess文件在root =( – user2734435