简单Apache.htaccess重写规则
我基本上希望每个请求简单Apache.htaccess重写规则,apache,mod-rewrite,Apache,Mod Rewrite,我基本上希望每个请求 http://localhost/~lucamatteis/datadict/AccessionMainName 打电话 http://localhost/~lucamatteis/datadict/index.php/AccessionMainName 这是我当前的.htaccess实际位于~lucamatteis/datadict/ RewriteEngine on RewriteBase /~lucamatteis/datadict/ RewriteCond %{
http://localhost/~lucamatteis/datadict/AccessionMainName
打电话
http://localhost/~lucamatteis/datadict/index.php/AccessionMainName
这是我当前的.htaccess
实际位于~lucamatteis/datadict/
RewriteEngine on
RewriteBase /~lucamatteis/datadict/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
但不幸的是,这不起作用。我什么都试过了。在这一点上,我认为问题是它使用了瓷砖,或者我不确定
在加载的模块部分下的phpinfo()
中加载了mod_rewrite
。我不确定还有什么地方可以看,因为我可能需要加载一个额外的东西,以便mod_rewrite工作
有什么想法吗?将您的ReWriteBase更改为物理目录:
/home/lucamatteis/public_html/datadict (or something similar)
首先确保您能够通过.htaccess文件(
AllowOwerride
config指令)覆盖Apache配置
然后尝试完全删除
RewriteBase
指令。在这种情况下,当前目录将用作基本目录。我认为问题在于您希望对不存在的文件执行内部重定向:
/home/lucamatteis/public_html/datadict/index.php/AccessionMainName
这仅在index.php是目录且AccessionMainName是文件时才有效
我认为这样的事情做不到。大多数情况下,只需使用查询字符串参数即可:
index.php?AccessionMainName
。。。您从
$\u GET['AccessionMainName']
中读取它,但它仍然不工作。我认为RewriteBase是相对于apache根目录的,这就是为什么大多数情况下它都被设置为/
。但无论如何,这不起作用。调试重写的一个好方法是打开RewriteLog/RewriteLogLevel:启用重写日志,以便查看发生了什么。此外,您还需要解释“这不起作用”的含义。发生了什么事?如果什么都没有发生,那么请这样说,因为有无限的事情,“这不起作用”可能意味着。我想我从来没有必要设置它。