2011-07-30 45 views
0

我正在開發一個小的Web應用程序,我的目錄結構是這樣的:我如何可以重定向本地主機/ s到本地主機/ S /網絡/ index.php來使用mod_rewrite

htdocs/s/index.php 
htdocs/s/views/ 
htdocs/s/vendors/ 

,我用這個的.htaccess:

<IfModule mod_rewrite.c> 
    Options -MultiViews 
    Options +FollowSymlinks 
    RewriteEngine On 
    RewriteBase /s/ 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php [QSA,L] 
</IfModule> 

這樣我可以進入localhost/s/aaaalocalhost/s/index.php/aaaa訪問。但我改變了我的目錄結構是這樣的:

htdocs/s/web/index.php 
htdocs/s/views/ 
htdocs/s/vendors/ 

而且我不知道如何使的.htaccess重定向到localhost/s/aaalocalhost/s/web/index.php/aaa.

我嘗試了很多東西,但無果而終。任何知道更多關於.htaccess和mod_rewrite的人都可以幫助我?

編輯:它似乎是不可能的設置它與我的lampp服務器或類似的東西。但是,人們如何設法讓WordPress,Joomla和其他CMS做到這一點?

它在開發環境中確實不是那麼重要,但是當我將它上傳到Internet時,會有一些方法將應用程序的所有庫和內部隱藏到Web訪問者中。我的意思是每個人都這樣做,對吧?那麼如何做到呢?

編輯2:對於一些奇怪的原因,它不能在我的家庭服務器中,所以我回到我以前的目錄結構,並使用.htaccess中的「拒絕所有人」隱藏。 Thay'll不是隱藏着很多,但我找不到任何其他的解決辦法...如果重寫規則您提供了工作正常,你

回答

0

,那麼這應該很好地工作,以及:

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks -MultiViews 
    RewriteEngine On 
    RewriteBase /s/ 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ web/index.php [QSA,L] 
</IfModule> 
+0

我試過了,它不起作用,我得到了localhost/s的404錯誤,但它可以和localhost/s/index.php一起使用。這有點奇怪。 – kevinspencer33

+0

我注意到localhost/s/index.php/aaa也不起作用,但localhost/s/web/aaa工作正常。 – kevinspencer33

+0

你在哪裏保存了這個.htaccess文件(哪個文件夾)?無論如何 - 你爲什麼不爲一個站點設置虛擬主機,並通過一些假的域名(比如'mysite.dev')訪問它,你可以通過'hosts'文件輕鬆做到這一點?這會讓你免於很多頭痛。 – LazyOne