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上myxampp
目录中的默认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相对,则将路径设置为相对路径。