我想将URL参数重定向到新文件。我有一个页面blog.php,它会生成如下链接的网址:http://localhost/project-DEV/blog/category/link-url-here/
但是当我点击链接时,它会为我提供网址
http://localhost/project-DEV/blog/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/uncategorized/hello-world/
以下是博客文件夹中的.htaccess文件。
RewriteEngine On
RewriteBase /project-DEV/blog
RewriteRule ^(.*)/?$ http\:\/\/localhost\/project-DEV\/blog\/index.php?$1 [L]
我在博客文件夹中有一个blog/index.php
文件。我想将此category/link-url-here/
发送到我的index.php
文件。
是否可以通过.htaccess
像我试过的那样?为什么这个.htaccess
代码不起作用?
答案 0 :(得分:1)
尝试省略http://localhost
部分:
RewriteEngine On
RewriteBase /project-DEV/blog
RewriteRule ^(.*)/?$ /project-DEV/blog/index.php?$1 [L]
如果这没有帮助,您可以添加条件以明确不重写index.php
,以防止重写循环:
RewriteCond %{REQUEST_URI} !^/project-DEV/blog/index.php$
答案 1 :(得分:1)
由于您的RewriteRule
几乎与每个请求相匹配,包括已经重写过的,因此会被重复调用。您需要重写规则,使其与已包含重写路径的请求不匹配,可能与RewriteCond
匹配。
此外,请考虑阅读When Not To Use Rewrite并使用更轻,更快,更少混淆的mod_redirect
代替mod_rewrite
。