我尝试打开页面时htaccess显示错误

时间:2017-02-28 10:59:00

标签: apache .htaccess mod-rewrite

我有两页,我正在尝试为这些链接制作好看的网址。 第一个链接: -

http://www.themobilesapp.com/tags.php?tag=Android

将此网址转换为此网址。

http://www.themobilesapp.com/tag/Android

为此我写了这段代码。

RewriteRule ^tag/([A-Za-z0-9-]+)?$ tags.php?tag=$1 [L]

第二个链接: -

http://www.themobilesapp.com/phones.php?title=Apple

将此网址转换为此网址。

http://www.themobilesapp.com/brand/Android

为此我写了这段代码。

RewriteRule ^brand/([A-Za-z0-9-]+)?$ phones.php?title=$1 [L]

但在两个页面上都会出现同样的错误。 此错误将出现在我的页面上 内部服务器错误

我的整个htaccess文件代码是

Options +FollowSymLinks -MultiViews -Indexes
Options -Multiviews

<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

RewriteRule ^([A-Za-z0-9-]+)?$ specification.php?url=$1 [L]

RewriteRule ^news/([A-Za-z0-9-]+)?$ news.php?url=$1 [L]

RewriteRule ^social/([A-Za-z0-9-]+)?$ social.php?url=$1 [L]

RewriteRule ^tag/([A-Za-z0-9-]+)?$ tags.php?tag=$1  [L]

RewriteRule ^brand/([A-Za-z0-9-]+)?$ phones.php?title=$1  [L]

</IfModule>

除了以下两个规则外,所有RewriteRule规则都有效。

1 个答案:

答案 0 :(得分:2)

请检查拼写并确保文件存在,请尝试使用以下简化规则。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#after above rewrite cond use below rewrite for each page in below manner
RewriteRule ^tags/([\w-]+)$ tags.php?tag=$1 [L]