2017-02-10 198 views
0

我無法將我的網址改寫爲適合搜索引擎優化的網址。我已經嘗試了很多來自這裏和其他地方的片段,但沒有一個看起來工作 - 我不知道爲什麼!htaccess'漂亮的網址'不起作用

由於我使用它進行域和IP canocialisation,所以重寫引擎正在工作並啓用。只是無法使用URL重寫。

我想讓網址讀取; xxx.com/profile/Name而不是xxx.com/profile.php?user=Name

我目前正在嘗試的代碼是;

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^profile/([^/]+)$ /profile.php?user=$1 [L] 

我的全htaccess的代碼;

ErrorDocument 404 http://localhost/CE/?404=1&page=1 

<IfModule mod_headers.c> 
# Set XSS Protection header 
Header set X-XSS-Protection "1; mode=block" 
</IfModule> 

# allow all except those indicated here 
<Files *> 
order allow,deny 
allow from all 
deny from 188.143.232.32 
deny from 188.143.232.27 
deny from 188.143.234.155 
deny from 188.143.*.* 
</Files> 

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^profile/([^/]+)$ /profile.php?user=$1 [L] 

# Canocial IP 
RewriteCond %{HTTP_HOST} ^217\.160\.0\.148 [nc,or] 

# Canocial URL 
RewriteCond %{HTTP_HOST} ^www\.xxx\.com$ 
RewriteRule ^/?$ "http\:\/\/xxx\.com\/" [R=301,L] 

RewriteCond %{HTTP_USER_AGENT} libwww-perl.* 
RewriteRule .* ? [F,L] 

<IfModule mod_expires.c> 
    ExpiresActive on 

    ExpiresByType image/jpg "access plus 3 days" 
    ExpiresByType image/jpeg "access plus 3 days" 
    ExpiresByType image/gif "access plus 1 month" 
    ExpiresByType image/png "access plus 1 month" 
</IfModule> 

我已經受夠了這東西的問題之前的另一個項目,從來沒有真正解決了他們,所以它會是不錯的找到一個可行的解決方案。

注:我檢查了堆棧溢出許多其他的'解決方案' - 沒有我已經嘗試過的工作。

回答

2

嘗試它像下面的規則,

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^profile/([^/]+)$ profile.php?user=$1 [L] 

上面我刪除從profile.php一個斜線,這可能是一個問題。

+0

作品 - 謝謝!但是現在導致了一個帶有用戶變量的圖庫,並在SQL查詢中使用它來檢索圖像。我有一些代碼顯示一個佔位符,如果沒有圖像可用或無法檢索。他們現在只是閃光的破碎圖像。 – Ben

+0

你是否在profile.php中獲得了用戶變量,如果出現這是另一個問題,請嘗試在你的頁面中使用''「。 –

+0

我剛剛在生產環境中進行了測試,並且它正在重寫網址,但所有來自數據庫的信息都沒有顯示 - 它只是顯示一個空白的,未填充的模板。我已經配置了基礎href。該變量正在profile.php文件中使用。 – Ben