我的页面如下所示:
www.mywebsite.com/work-view?id=1
www.mywebsite.com/work-view?id=2
www.mywebsite.com/work-view?id=3
等等…
如何使用.htaccess将它们设置为这样?
www.mywebsite.com/work/1
www.mywebsite.com/work/2
www.mywebsite.com/work/3
我已经试过了,但没有用。
RewriteRule work/(.*)/ work-view.php?id=$1
编辑:
这是我正在尝试的新代码。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}'.php -f
RewriteRule ^(.*)$ $1.php
RewriteRule ^/?work/([0-9]+)$ work-view.php?id=$1 [L]
当我检查页面/工作视图时?id=2显示良好,但当我尝试输入/work/2时,它显示500内部服务器错误。不幸的是,在cPanel日志中,我没有看到任何与此问题相关的错误,可能是因为一些托管限制。
新编辑:
arkascha answer工作得很好,这个问题与CSS有关,在我使用.htaccess的情况下,我已经更改了CSS的路径,它工作得很不错。
这是另一个同样有效的代码。
RewriteRule ^work/([0-9]+)/?$ work-view?id=$1 [NC,L] # Handle product requests
只是你在问题末尾提到的尝试的一个简短提示:
该模式CCD_ 1肯定不会与主题CCD_。看看图案中的斜线。相反,你应该尝试类似^/?work/([0-9]+)$
或类似的东西:
RewriteEngine on
RewriteRule ^/?work/([0-9]+)$ work-view.php?id=$1 [L]
更一般的一点是,我经常指出这一点,因为令人惊讶的是,许多开发人员似乎根本没有意识到这个问题:只有在必要的情况下,才应该使用.htaccess
样式的文件。将这样的重写规则放在http服务器的实际主机配置中通常是更好的选择。众所周知,.htaccess
风格的文件容易出错,很难调试,确实降低了服务器的速度,通常是徒劳的。它们仅作为而不是控制主机配置的人的最后一个选项提供,例如,当使用廉价的主机提供商时。