只有顶级条件不是其他人用于重写网址吗?

时间:2017-02-28 06:51:34

标签: .htaccess mod-rewrite url-rewriting

这是我用于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

只有顶级条件才有效。

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