2013-03-26 208 views
7

我希望這樣,當用戶去 http://mysite.com/home,它將他重定向到http://mysite.com/page.php?id=home。這是我在我的.htaccess中,但它似乎並沒有工作。URL重寫似乎不起作用。 Apache2

RewriteEngine On 
RewriteRule ^/(.+)$ page.php?id=$1 [NC,L] 

它只是把我發送到/ home目錄,有一個不錯的404.幫助表示讚賞。謝謝。

編輯:

我已經嘗試了一些重寫我知道的工作,所以現在我敢肯定這不是我的問題。我檢查了phpinfo(),是的,mod重寫正在運行,我用LAMP設置了apache2,我運行的是最新版本的Linux Mint。

+2

/var/www/部分修改AllowOverride NoneAllowOverride all是啓用了mod_rewrite? – m79lkm 2013-03-26 20:19:54

+0

它是,更新後。 – 2013-03-26 20:23:22

回答

21

玉以及我解決了問題,這是我做到了。

sudo gedit /etc/apache2/sites-available/default

,然後我在文件

<Directory /var/www/> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride all #This was 'None' before, change it to 'all' 
    Order allow,deny 
    allow from all 
</Directory> 
+0

謝謝! @zeokila – frops 2014-07-03 07:53:06

+0

@frops很高興幫助! – 2014-07-03 15:28:10

+0

不要忘記在此之後重新啓動Apache! – 2018-02-16 16:44:58

3

這爲我除去正斜槓後:

RewriteEngine On 
RewriteBase /test 
RewriteRule ^(.+)$ page.php?id=$1 [NC,L] 
+0

這仍然不適用於我:/ – 2013-03-26 20:54:44

+0

是您的文檔根目錄中的page.php?如果您不在文檔根目錄中,您還需要添加一個RewriteBase語句 – m79lkm 2013-03-26 20:59:23

+0

編輯我的答案,顯示您的.htaccess文件。希望這可以幫助! – m79lkm 2013-03-26 21:04:53