.htaccess文件重写次数超过

时间:2015-10-09 11:02:15

标签: apache .htaccess mod-rewrite url-rewriting friendly-url

我的PHP应用程序中的.htaccess文件应该将所有请求从example.com/playlists/[ID]重定向到example.com/playlists/display.php?id=[ID],但.htaccess文件也会影响其他文件。 .htaccess系统将/?id=edit追加到example.com/playlists/edit的末尾,这会影响页面的显示方式。

我的目录结构:

Playlists
|-- index.php
`-- playlists
    |-- index.php
    |-- display.php <----------------[ THIS FILE TAKES THE .HTACCESS REDIRECTED REQUESTS ]----------------
    |-- .htaccess <----------------[ THIS IS THE PROBLEM FILE ]-------------------
    `-- edit
        `-- index.php

我的.htaccess文件:

RewriteEngine On
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule ^([a-zA-Z0-9_\-\+]+)$ display.php?id=$1

我要重定向的任何URL的唯一部分是example.com/playlists/之后的部分,而不是其他任何内容,确保规则不会应用于任何其他内容,并且不会覆盖任何现有目录或文件。

网址example.com/playlists/foobar已成功重写为example.com/playlists/display.php?id=foobar

有没有人有任何想法或建议?

1 个答案:

答案 0 :(得分:3)

您的.htaccess文件将编辑作为display.php的ID。

您需要指定您希望编辑首先专门转到该文件夹​​,否则请使用原始规则。

您可以将文件夹移动到根目录并使用它:

RewriteRule ^edit/?$ edit/index.php [L]
RewriteRule ^([A-Za-z0-9_\-\+]+)/?$ display.php?id=$1 [L]