我无法将我的网址重写为SEO友好的网址。我从这里和其他地方尝试了很多片段,但是它们似乎都没有用 - 我不确定为什么!
重写引擎肯定正在工作并启用,因为我将其用于域和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>
我之前在另一个项目上遇到过这个问题并且从未真正解决过它们,所以找到一个有效的解决方案会很好。
注意:我已经检查过许多其他解决方案&#39;在Stack Overflow上 - 没有我尝试过的。
答案 0 :(得分:2)
尝试下面的规则,
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^profile/([^/]+)$ profile.php?user=$1 [L]
上面我从profile.php中删除了一个前导斜杠,这可能是一个问题。