2013-07-12 147 views
1

我有一個網站,我在wampserver上進行本地開發,並在.htaccess文件中使用網址重寫。我已經嘗試了所有的以下內容:另一個.htaccess網址重寫問題

  1. mod_rewrite的啓用
  2. httpd.conf中具有的AllowOverride所有目錄( 「C:\ WAMP \ WWW \ pascale3」)

這裏我的.htaccess文件,它是在這個目錄下( 「C:\ WAMP \ WWW \ pascale3」)

<IfModule mod_rewrite.c> 

RewriteEngine On 
RewriteBase/
RewriteRule ^(about|mission|contact)/?$ index.php?p=$1 

</IfModule> 

這是我想重寫網址:

http://local.pascale3.com/?p=about 

我也有一個GoDaddy的直播現場,並沒有在那裏工作要麼

+1

你是知道的RewriteRules是進入網址,而不會改寫現有的?你遇到了什麼錯誤?也請嘗試拿出一個描述性/總結性的問題標題。 – mario

回答

0

使用此代碼替換您的.htaccess規則:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

# to externally redirect /index.php?p=about to /about 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(?:index\.php)?\?p=(about|mission|contact)[&\s] [NC] 
RewriteRule^/%1? [R=301,L] 

# to internally forward /about to /index.php?p=about 
RewriteRule ^(about|mission|contact)/?$ /index.php?p=$1 [L,QSA,NC] 
+0

沒有工作 –

+0

確定編輯。現在就試試。 – anubhava

+0

工作!它必須是[L,QSA,NC]在最後的權利? –

0

試試這個index.php來調試

<?php 
    echo('<pre>'); 
    print_r($_SERVER); 
    print_r($_GET); 
    die; 

看看你是否越來越像,去 時http://local.pascale3.com/contact

Array(
    ...... 
    [QUERY_STRING] => p=contact 
    [REQUEST_URI] => /contact 
    [SCRIPT_NAME] => /index.php 
    [PHP_SELF] => /index.php 
    [argv] => Array 
     (
      [0] => p=contact 
     ) 

    [argc] => 1 
) 
Array 
(
    [p] => contact 
) 

如果你沒有看到是p PARAM,然後有一個服務器配置/ htaccess的問題。檢查index.php?p = contact是否可用。你會看到上面的調試信息。

+0

有沒有p參數,這很奇怪,爲什麼不會wampserver接受一個變量 –

+0

nevermind它獲取GET變量,我沒有添加重寫標誌。 –