[英]rewrite my url using htaccess
我在codeigniter項目中工作,我想使用htaccess重寫我的URL。 我有一個類似abc.com/main/demo
的URL,我想將其更改為abc.com/demo
我只是刪除了“ main”。 我怎么能做到這一點。
對不起,英語不好:(
實際上,第二個想法可能就是您要的:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /main
RewriteRule ^(/)?$ index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
對於簡單的重定向,您不需要mod_rewrite。
apache指令Redirect或RedirectMatch應該足以滿足您的要求:
RedirectMatch 302 ^/main/(.*)$ https://my.website.com/$1
在這里,我使用302重定向,因此它只是一個臨時重定向,當您的網站正常(並且該重定向正常工作)時,您應該在301中對其進行更改,以使其永久不變。
現在,我們在回答中所要做的就是如何告訴您的Web HTTP客戶端使用/ demo url而不是/ main / demo。 但是,您抱怨的是404 ...如果在/ demo根目錄中沒有可用的index.php或index.html,那就很正常了 。
因此,我想您的問題不僅是如何重定向用戶到另一個目錄中,還包括如何使/var/www/mysite/main/demo
目錄(或類似名稱)與該目錄中的所有文件一起響應/ demo / *網址,而不是/ main / demo / *。 在此配置中,我們可以猜測/var/www/mysite/
是您的DocumentRoot 。 即,這是您的Web服務器的根目錄。 最簡單的解決方案是通過將DocumentRoot更改為/var/www/mysite/main
來更改此根。 您可以在VirtualHost的主要配置中執行此操作,也可以為項目創建一個新的VirtualHost。
如果您無權訪問apache主配置,而只能訪問.htaccess,並且如果您以其他網址運行其他幾個網站,我們可能會找到更復雜的解決方案(例如,mod_rewrite根據網站名稱重定向物理目錄路徑)。 但是,如果您需要更多信息,則必須向我們提供更多信息。
**這應該做到:
RewriteEngine On
RewriteBase /
RewriteRule ^main/(.*)$ /$1 [R]
這可以解決問題,或者您可以訪問www.tossdown.com了解更多詳細信息**
這應該這樣做:
RewriteEngine On
RewriteBase /
RewriteRule ^main/(.*)$ /$1 [R]
我希望這不是千分之一的答案...
RewriteEngine On
RewriteRule ^demo/$ /main/demo/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.