问题描述
我正在尝试重写此 URL:http://localhost/mysite/admin/edit-post.PHP?id=12
预期输出网址:http://localhost/mysite/admin/edit/12
mysite 是我的根文件夹
我的 htaccess 代码:
# 404 page
ErrorDocument 404 http://localhost/mysite/404.PHP
RewriteEngine On
RewriteBase /mysite/
# Extension Removal
RewriteCond %{REQUEST_FILENAME}\.PHP -f
RewriteRule ^(.*)$ $1.PHP
# URL Rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# This Rule is for the file which i have it in my root folder,It's working
RewriteRule ^posts/(.+)$ post.PHP?id=$1 [L]
# And I'm tring the same but it's not working.
RewriteRule ^edit/(.+)$ edit-post.PHP?id=$1 [L]
<a href="edit/<?PHP echo $post_detail['id']; ?>">Edit Post</a>
解决方法
根据您显示的尝试,示例;请尝试遵循 htaccess 规则文件。
请确保在测试您的 URL 之前清除浏览器缓存。
# 404 page
ErrorDocument 404 http://localhost/mysite/404.php
RewriteEngine On
RewriteBase /mysite/
# Extension Removal
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
# URL Rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# This Rule is for the file which i have it in my root folder,It's working
RewriteRule ^posts/(.+)$ post.php?id=$1 [L]
###Newly added rule here,where considering that your edit-post.php is present inside admin folder.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin/edit/(.+)/?$ admin/edit-post.php?id=$1 [L]