我的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
。
有没有人有任何想法或建议?
答案 0 :(得分:3)
您的.htaccess文件将编辑作为display.php的ID。
您需要指定您希望编辑首先专门转到该文件夹,否则请使用原始规则。
您可以将文件夹移动到根目录并使用它:
RewriteRule ^edit/?$ edit/index.php [L]
RewriteRule ^([A-Za-z0-9_\-\+]+)/?$ display.php?id=$1 [L]