到目前为止,我已经让我的.htaccess让我删除了“.php”扩展名,但这对我来说还不够。我希望能够以example.com/asdfjK的形式访问example.com/test?id=asdfjK。所以它只接受URL中的主要php get参数(我不知道该怎么称呼它们。
到目前为止,这是我的.htaccess文件:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_]+)$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9_]+)/$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9_]+)$ /image.php?ID=$1
RewriteRule ^([a-zA-Z0-9_]+)/$ /image.php?ID=$1
答案 0 :(得分:1)
无法区分发送到index.php
的内容和发送到image.php
的内容。模式是相同的,这意味着一切都将匹配第一个,没有任何东西将被路由到image.php
。你必须在网址上添加一些内容,以便与之匹配。类似的东西:
http://example.com/image/abcdefg123456
这意味着htaccess文件看起来像:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?page=$1 [L,QSA]
RewriteRule ^image/([a-zA-Z0-9]+)/?$ image.php?page=$1 [L,QSA]
答案 1 :(得分:0)
问号后面的PHP参数称为“查询字符串”。
尝试这样的事情:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteRule ^([a-zA-Z0-9]+)$ /index.php?page=$1 [L]
这应该重定向来自:
http://example.com/abc123
要:
http://example.com/index.php?page=abc123
另见: