Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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
Apache:.htaccess:SEO:如何消除查询字符串语法(PHP)_Php_Apache_.htaccess_Xampp - Fatal编程技术网

Apache:.htaccess:SEO:如何消除查询字符串语法(PHP)

Apache:.htaccess:SEO:如何消除查询字符串语法(PHP),php,apache,.htaccess,xampp,Php,Apache,.htaccess,Xampp,中为我的问题提供了极好的帮助。然而,尽管尝试了其中描述的事情,我仍然有问题,因为它似乎是我的 我有一个由以下页面组成的网站: http://mywebsite.com/?menu1=home http://mywebsite.com/?menu1=posts&menu2=johndoe http://mywebsite.com/?menu1=posts&menu2=janedoe http://mywebsite.com/?menu1=posts&menu2=nickdo

中为我的问题提供了极好的帮助。然而,尽管尝试了其中描述的事情,我仍然有问题,因为它似乎是我的

我有一个由以下页面组成的网站:

http://mywebsite.com/?menu1=home
http://mywebsite.com/?menu1=posts&menu2=johndoe
http://mywebsite.com/?menu1=posts&menu2=janedoe
http://mywebsite.com/?menu1=posts&menu2=nickdoe
http://mywebsite.com/?menu1=fashion&menu2=armani
http://mywebsite.com/?menu1=fashion&menu2=gucci
http://mywebsite.com/?menu1=about
这些页面通过Windows上my
xampp
目录中的默认
index.php
文件显示

需要什么才能让浏览器对以下SEO无聊的链接做出响应?我希望我的PHP代码至少能进行修改

http://mywebsite.com/home
http://mywebsite.com/posts/johndoe
http://mywebsite.com/posts/janedoe
http://mywebsite.com/posts/nickdoe
http://mywebsite.com/fashion/armani
http://mywebsite.com/fashion/gucci
http://mywebsite.com/about

谢谢。

您可以在Root/.htaccess中使用这些规则

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/?$ /?menu1=$1&menu2=$2 [QSA,NC,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /?menu1=$1 [QSA,NC,L]

第一条规则将“/posts/jondoe/”重写为“/?menu=posts&menu=jonde”,第二条规则将“/about”重写为“/about”to“/?home=about”。

RewriteCond%{REQUEST\u FILENAME}-d告诉apache停止重写,如果请求已经针对一个现有目录(如果您请求一个目录,则apache不会重写您的请求,但它会为您提供您请求的目录)RewriteCond%{request_FILENAME}-f告诉apache停止重写,如果请求已经针对一个现有文件(如果您请求一个现有文件,那么apache不会重写您的请求,但它会为您提供您请求的文件)您可以找到关于Url重写的更多信息,apache官方文档上的标志好的,现在我知道了,重写规则右侧指定的路径是绝对路径,因此所有内容都与
http://mywebsite.com/
。如果这些路径需要与中找到的目录.htaccess相对,则将路径设置为相对路径。