我基本上都希望每个请求
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加载额外的东西才能工作。
有什么想法吗?
答案 0 :(得分:2)
首先确保您能够通过.htaccess文件(AllowOwerride
配置指令)覆盖Apache配置。
然后尝试完全删除RewriteBase
指令。在这种情况下,当前目录将用作基础。
答案 1 :(得分:0)
将ReWriteBase更改为您的物理目录:
/home/lucamatteis/public_html/datadict (or something similar)
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteBase
答案 2 :(得分:0)
我认为问题在于您要对不存在的文件进行内部重定向:
/home/lucamatteis/public_html/datadict/index.php/AccessionMainName
仅当index.php是目录且AccessionMainName是文件时才会起作用。
我不认为这样的事情可以做到。大多数情况下,您只需使用查询字符串参数:
index.php?AccessionMainName
...您从$_GET['AccessionMainName']
阅读。