Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php [.htaccess]如何重写此url?_Php_.htaccess - Fatal编程技术网

Php [.htaccess]如何重写此url?

Php [.htaccess]如何重写此url?,php,.htaccess,Php,.htaccess,我仍然发现重写htaccess以使url更漂亮有点困难 这是实际的url: http://mydomain.com/folder/page.php#_=_ 我想将上述内容改写为: http://mydomain.com/folder/page 在阅读了各种教程后,我尝试了这种方法,但不起作用: <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^([a-zA-Z0-9_-]+)$ hhttp://mydomain.com/

我仍然发现重写htaccess以使url更漂亮有点困难

这是实际的url:

http://mydomain.com/folder/page.php#_=_
我想将上述内容改写为:

http://mydomain.com/folder/page
在阅读了各种教程后,我尝试了这种方法,但不起作用:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ hhttp://mydomain.com/folder/page.php#$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ http://mydomain.com/folder/page$1
</IfModule>

重新启动发动机
重写规则^([a-zA-Z0-9_-]+)$hhttp://mydomain.com/folder/page.php#$1
重写规则^([a-zA-Z0-9_-]+)/$http://mydomain.com/folder/page$1
我知道这是错误的,但我真的不知道如何正确地做

非常感谢您的帮助。TIA使用这个

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^folder/page.php#_=_$ folder/page [L,R=301]
</IfModule>

重新启动发动机
重写规则^folder/page.php#u=$folder/page[L,R=301]
#=
不会被传递到服务器(实际上它不是URI的一部分)

唯一的方法是使用JavaScript(在客户端)而不是PHP(在服务器端):


但似乎没有必要

您拥有的正则表达式([a-zA-Z0-9_-]+)$只匹配一个字母数字字符串,没有像路径
文件夹/页面
那样的斜杠。还有完整的URL
hhttp://mydomain.com/folder...
(注意双
h
btw)将导致重定向,而不是内部重写。行不通!您无法访问像#这样的标签。您只能使用javascript在客户端检查这一点。在#检查此链接后,您的服务器将永远无法获取数据。我希望这将帮助您#无法工作,哈希标记只能在客户端访问(例如,使用javascript)如果我的url是
http://mydomain.com/folder/index.php#_=_
@nancylee973该代码的唯一作用是从
location.href
中删除
#u=.
。在您的示例中,它将重定向到
http://mydomain.com/folder/index.php
@nancylee973如果要缩短URL,可以将代码与URL重写一起使用。URL重写将从URI中删除
index.php
,代码可以删除
#u=.
。你能分享一些例子吗?@nancylee973我想你应该重定向到
http://mydomain.com/folder/
而不是
http://mydomain.com/folder/index.php
在您的示例中。如果没有,你就不需要这样做。
if (location.hash === "#_=_") {
    location.replace(location.href.replace(/#.+/, ""));
}