簡體   English   中英

使用htaccess重寫我的網址

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM