繁体   English   中英

简单的Apache .htaccess RewriteRule

[英]Simple Apache .htaccess RewriteRule

我基本上都想要每个请求

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加载额外的东西才能工作。

有任何想法吗?

首先确保您能够通过.htaccess文件( AllowOwerride config指令)覆盖Apache配置。

然后尝试完全删除RewriteBase指令。 在这种情况下,当前目录将用作基础。

将ReWriteBase更改为您的物理目录:

/home/lucamatteis/public_html/datadict  (or something similar)

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteBase

我认为问题是您想对不存在的文件进行内部重定向:

/home/lucamatteis/public_html/datadict/index.php/AccessionMainName

仅当index.php是目录并且AccessionMainName是文件时,这才起作用。

我不认为这样的事情可以做到。 大多数情况下,使用查询字符串参数就是您所需要的:

index.php?AccessionMainName

...,然后从$_GET['AccessionMainName']读取该内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM