【发布时间】:2015-01-29 05:24:42
【问题描述】:
我在使 url seo 友好和从 php 文件中删除扩展名方面遇到问题。如果我使用其中一个删除扩展名或使 url 对 seo 友好,它可以正常工作,但如果我同时使用这两者,则只有 .htaccess 的上半部分适用于这两者。
我的 .htaccess 代码是
Options +FollowSymLinks
Options -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/.]+)/$ $1.php
RewriteRule ^([^/.]+)/([^/.]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
RewriteRule ^/([a-zA-Z0-9]+)/$ vendorlist.php?bcat=$1
RewriteRule ^([^/.]+)/([^/.]+)/?$ /vendor.php?bcat=$1&vendor=$2
如果我使用上面写的它,它只会删除扩展。如果使用 seo 友好的 url,它会给出错误 404。但是如果我像这样改变位置
Options +FollowSymLinks
Options -Multiviews
RewriteEngine on
RewriteRule ^/([a-zA-Z0-9]+)/$ vendorlist.php?bcat=$1
RewriteRule ^([^/.]+)/([^/.]+)/?$ /vendor.php?bcat=$1&vendor=$2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/.]+)/$ $1.php
RewriteRule ^([^/.]+)/([^/.]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
那么它只会使 url 对 SEO 友好。没有扩展删除工作。
请帮我解决这个问题,在此先感谢....
【问题讨论】:
标签: php html .htaccess url seo