2013-06-02 34 views
2

我的伙伴和我正在对我们使用ipage托管的网站进行最后修改,但我们只是在使用.htaccess时遇到了一个小问题。。ipta上的.htaccess rewriterule语法

我们希望使我们的网站搜索引擎友好(和整洁)和重写不起作用,我们不断收到404错误。我只想验证语法是否正确。我已经用ipage提出质疑,他们说mod_rewrite已经安装,allowoverride已经设置好了,但是对正则表达式无能为力。

的网址是:

的http:// www.example.com/article.php?title=Some-Article

,我们希望把它:

HTTP :// www.example.com/Some-Article

整个htaccess文件:

# Protect db_connect 
<files db_connect.php> 
order allow,deny 
deny from all 
</files> 

# Protect .htaccess 
<files .htaccess> 
order allow,deny 
deny from all 
</files> 

Options +FollowSymLinks 
Options +Indexes 
RewriteEngine On 

# Remove .php but still allow addressing .php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

RewriteRule ^([^/]*)/$ /article.php?title=$1 [L] 

任何帮助将不胜感激,因为我已经搜索了几个小时,还测试了从http://www.generateit.net/mod-rewrite/没有运气产生的语法。

问候,

亚当

+0

你应该让'/'可选! 'RewriteRule ^([^ /] *)/?$ /article.php?title=$1 [L]' – HamZa

+0

我加了?到正则表达式,它给了我整个网站500错误? –

+0

什么是错误? (请参阅日志。)还可以启用跟踪和调试重写规则以查看发生了什么。 – Qtax

回答

0

谢谢你们,

我的队友,我也结束了分类整理,我们改变了围绕在后端的几件事情,使从URL变化:

的http:// www.example.com/article.php?title=Some-Article

到:

HTTP:// www.example.com/article.php?article=Some-Article

与以下调整到.htaccess文件

然后我们得到了它的工作:

RewriteEngine On 
RewriteRule page/([^/]*)/$ /index.php?p=$1 [L] 
RewriteRule ^product/([^/]*)$ /article.php?article=$1 [L] 
RewriteRule ^([^/]*)/$ /index.php?sort=$1 [L] 
RewriteRule ^([^/]*)/page/([^/]*)$ /?sort=$1&p=$2 [L] 

所以我们现在已经形成在以下网址:

HTTP:// www.example.com/page/2

HTTP:// www.example.com/product/Some-Product/

HTTP:// www.example.com/

的http:// www.example.com/category/page/2

调试确实帮助,感激不尽,我打开了错误报告级别在php.ini中输出到一个我可以通过FTP访问的文件。