Mod rewrite 301使用HTACCESS或PHP进行URL转发

Mod rewrite 301使用HTACCESS或PHP进行URL转发,mod-rewrite,Mod Rewrite,我只是好奇是否有人能在这个问题上帮助我 我有这些旧的网址,需要得到正确的转发 以前的结构 domain.com/Canada/Accounting domain.com/Canada/Trades domain.com/Canada/Sales 适当的结构 类别-/工作/会计工作 地点-/jobs/jobs kelowna 加在一起-/工作/会计工作kelowna 域结构 domain.com/jobs/[category]-作业-[location] 这是可能的,无论是通过HTACCES还是P

我只是好奇是否有人能在这个问题上帮助我

我有这些旧的网址,需要得到正确的转发

以前的结构

domain.com/Canada/Accounting

domain.com/Canada/Trades

domain.com/Canada/Sales

适当的结构

类别-/工作/会计工作

地点-/jobs/jobs kelowna

加在一起-/工作/会计工作kelowna

域结构

domain.com/jobs/[category]-作业-[location]

这是可能的,无论是通过HTACCES还是PHP…只是不想要这些404'ed页面。 我有86+要做,如果有一个很好的方法来推进这些。 这就是我所拥有的,但我无法成功地正确转发坏的URL

旧的

/browse
/Toronto/
/Canada/Administrative
/Vancouver/
/Canada/Trades
/Calgary/
/Canada/Hospitality
这是我现在的访问权限

Options +FollowSymlinks

    RewriteEngine on
    RewriteBase /

    #
    # Trailing slash check
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
    RewriteRule ^(.*)$ $1/ [L,R=301]


    #
    # PAGES
    RewriteRule ^add-job/?$     /add-job.php [L]
    RewriteRule ^jobs/?$        /results.php [L]
    RewriteRule ^sitemap/?$     /sitemap.php [L]

    #
    # SEARCH
    # CATEGORY - accounting-jobs
    # LOCATION -            jobs-kelowna
    # TOGETHER - accounting-jobs-kelowna
    RewriteRule ^jobs/([a-zA-Z0-9_-]+)/([0-9]+)?$    results.php?whatwhere=$1&page=$2
    RewriteRule ^jobs/([a-zA-Z0-9_-]+)/([0-9]+)/?$   results.php?whatwhere=$1&page=$2

如果您有
mod_rewrite
,您可以将这些行添加到
.htaccess
文件中:

RewriteEngine on
RewriteRule ^Canada/Accounting$ /jobs/accounting-jobs [R,L]

然而,你的问题并不清楚你到底想要什么。以前的3个URL是否应该重定向到3个新URL?它们似乎并不相等。

要重定向页面,您可以执行以下操作:

RewriteEngine On
RewriteBase /

RewriteRule ^(\w+)/(\w+)$ /jobs/$2-jobs-$1 [R=301,L]
这只针对您以前的结构中的URL(组合,您没有显示任何以前的URL,只是位置或类别),但请注意,
Canada
将保留
Canada
,它不会变成
Canada
。您也可以使用“重写”将所有内容更改为小写

您还必须注意不要重写任何当前URL,但如果没有更多信息,这应该可以做到

编辑:对于仅限位置的URL,您可以使用如下规则:

RewriteRule ^(\w+)/$ /jobs/jobs-$1 [R=301,L]
同样,您需要注意您的重写规则不会干扰您当前的URL。如果是这种情况,则需要手动重定向每个旧url


对于小写的新URL,您应该进行搜索,因此,关于将大小写变量转换为小写,有一些问题有很好的答案。

是的,可以,但我还有86个问题要做,不知道是否有更简单的选项……您需要提供更多信息。显示几个旧URL示例以及它们应该映射到的内容。我添加了更多示例/内容。。。你能再看一眼吗?嘿,我又加了一些例子,你能不能再看一眼。。。你发送的结果不太理想。。。。可能的