这是我用于url-rewriting的htaccess代码。 我这里有问题。
Options +FollowSymLinks -MultiViews -Indexes
<IfModule mod_rewrite.c>
DirectoryIndex index.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
ErrorDocument 404 404error.php
RewriteEngine On
RewriteRule ^([A-Za-z0-9-]+)?$ specification.php?url=$1
RewriteRule ^([A-Za-z0-9-]+)?$ news.php?url=$1
RewriteRule ^([A-Za-z0-9-]+)?$ social.php?url=$1
</IfModule>
这里有三页不同的数据。当我点击 spcification.php 页面数据时,它会将我重定向到同一页面,但是如果我的代码高于此值,那么它会将我重定向到news.php。
RewriteRule ^([A-Za-z0-9-]+)?$ news.php?url=$1
只有顶级条件才有效。
答案 0 :(得分:1)
据我所知,你不能对像这样的多个条件使用相同的规则
RewriteRule ^([A-Za-z0-9-]+)?$ specification.php?url=$1
当第一个规则匹配时,它会停止搜索相同的条件,而是必须使用
RewriteRule ^specification/([A-Za-z0-9-]+)?$ specification.php?url=$1 [L]
RewriteRule ^news/([A-Za-z0-9-]+)?$ news.php?url=$1 [L]
您的原始网址将如下domain.com/news/value
。