使用htaccess时出错500

时间:2014-08-25 14:19:59

标签: regex apache .htaccess mod-rewrite internal-server-error

我无法在我的网站中使用子域名。它将返回:

  

错误500,内部服务器错误。

当我检查时,我发现问题出在我的htaccess文件中。

RewriteEngine On
Options -Indexes

RewriteRule    ^contest/?$    contest.php    [NC,L]
RewriteRule    ^contest/(.+)/?$    contest.php?name=$1&id=htapappu    [NC,L]

RewriteRule    ^news/?$    news.php    [NC,L]
RewriteRule    ^news/(.+)/?$    news.php?newsid=$1    [NC,L]

RewriteRule    ^projects/?$    projects.php    [NC,L]
RewriteRule    ^projects/(.+)/?$    projects.php?projectid=$1    [NC,L]

RewriteRule    ^page/?$    page.php    [NC,L]
RewriteRule    ^page/(.+)/?$    page.php?feed=$1    [NC,L]

RewriteRule    ^photos/?$    photos.php    [NC,L]
RewriteRule    ^photos/(.+)/?$    photos.php?catg=$1    [NC,L]

RewriteRule    ^profile/complete/?$    complete_profile.php    [NC,L]

RewriteRule    ^profile/picture/?$    set_profile_pic.php    [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ member.php?userismnob=$1&redirect=me    [NC,L]

问题出在最后一行。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ member.php?userismnob=$1&redirect=me    [NC,L]

当我删除最后两行时,没有问题。我认为这是一个小问题。

1 个答案:

答案 0 :(得分:1)

您可以使用index.php指令默认加载DirectoryIndex,然后添加规则以忽略子域的所有重写:

DirectoryIndex index.php
Options -Indexes    
RewriteEngine On
RewriteBase /

# ignore further rules for admin
RewriteCond %{HTTP_HOST} ^admin\. [NC]
RewriteRule ^ - [L]

RewriteRule    ^contest/?$    contest.php    [NC,L]
RewriteRule    ^contest/(.+)/?$    contest.php?name=$1&id=htapappu [NC,L,QSA]

RewriteRule    ^news/?$    news.php    [NC,L]
RewriteRule    ^news/(.+)/?$    news.php?newsid=$1    [NC,L]

RewriteRule    ^projects/?$    projects.php    [NC,L]
RewriteRule    ^projects/(.+)/?$    projects.php?projectid=$1 [NC,L,QSA]

RewriteRule    ^page/?$    page.php    [NC,L]
RewriteRule    ^page/(.+)/?$    page.php?feed=$1 [NC,L,QSA]

RewriteRule    ^photos/?$    photos.php    [NC,L]
RewriteRule    ^photos/(.+)/?$    photos.php?catg=$1    [NC,L,QSA]

RewriteRule    ^profile/complete/?$  complete_profile.php [NC,L]
RewriteRule    ^profile/picture/?$   set_profile_pic.php  [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ member.php?userismnob=$1&redirect=me [NC,L,QSA]