.htaccess 重定向工作,但重写失败

1tu0hz3e  于 2023-10-23  发布在  其他
关注(0)|答案(1)|浏览(83)

我正在建设一个WordPress的价格比较网站,使用WPDataTables,PHP和JavaScript。我想在我的域Map到一个静态的网址与问号追加不存在的动态网址。
我试着像这样更改我的.htaccess文件(要么一个,要么另一个,永远不要两个):

# BEGIN me
    RewriteEngine On    
    RewriteBase /
    RewriteRule ^cars/([^/]+)$  /cars/?$1 [L]             <== ... either this one...but fails
    RewriteRule ^cars/([^/]+)$  /cars/?$1 [L,R]           <== ... or this one, it works
    # END me

所以重定向功能的工作,但我认为这不是网页排名友好。真的,我的网站是全新的,我不重定向'旧的东西'。谷歌不会喜欢它,我猜。
我的期望是,如果重定向工作-那么重写也应该工作。
我真的更喜欢重写,因为它们对外界是不可见的。但这似乎并不可靠。

问题

1.假设我得到重写工作,我宁愿不使用?url参数.如果我的服务器端php可以访问原始URL和重写的URL,然后原始URL包含我需要的所有信息。但似乎这个原始URL对我的服务器端页面并不真正可见,因为我的document.location.href已经重写。浏览器地址栏仍然显示原始的。有什么方法可以让我进入这个?
1.在这种情况下,重定向真的不是正确的方法吗?我不喜欢用户看到更新的URL,价格也有双重往返,它混淆了谷歌将“旧”Map到“新”。
1.什么可以解释重定向在重写失败的地方可靠地工作?失败意味着我得到404。我在Chrome上使用incognito来验证。重定向只是工作,但重写总是失败。
重写是一个痛苦的调试真的。我确实使用https://htaccess.madewithlove.com/验证,但这表明一切都应该是好的,在实践中它没有。
我在其他目录中没有其他.htaccess文件,我在托管方的服务器上,因此无法直接访问Apache。

ig9co6j1

ig9co6j11#

我的期望是,如果重定向工作-那么重写也应该工作。
重定向会导致浏览器发出第二个请求。这会触发服务器处理其他规则。
可能发生的情况是,你有一些其他的重写规则,为/cars指定了一个处理程序。它甚至可能是默认的WordPress前端控制器。
我不知道有什么方法可以在.htaccess中重写,然后与WordPress前端控制器兼容。您可能需要编写一个自定义的WordPress主题,如Converting Wordpress URL path into query string

相关问题