.htaccess 파일이 정말 내 것이 아니다 내 모든 페이지에 대한 간편 URL을 얻을 수 내 htaccess로 리팩토링합니다. 그들은 여전히 나에게 비밀을 유지하고 아마 항상 것입니다 ... 는 어떻게이
어쨌든, 그래서 나는 모든 다른 페이지에 꽤 재 작성 규칙과 htaccess로 파일이 있습니다.URL :http://placeholder.com/OC/hoig/[page]
폴더 구조 :
- 지수 (소식) : http://placeholder.com/OC/hoig/index.php
- 파트너 :,736,948,
- 연락처 : http://placeholder.com/OC/hoig/contact.php
- Leerinhoud (그래, 그건 네덜란드) : http://placeholder.com/OC/hoig/leerinhoud.php
- 검색 : http://placeholder.com/OC/hoig/search.php?q=test
목표는 꽤 (의미 얻을 수 있습니다) 모든 페이지의 URL입니다. 지금이 .htaccess 파일은 부분적으로 작동합니다. 거의 모든 페이지는 'Leerinhoud detail'을 제외하고 예쁜 URL을 얻습니다. 어떤 이유로 Leerinhoud에서 콘텐츠를 반환하지만 예쁜 URL (http://placeholder.com/OC/hoig/leerinhoud/1/the-slug) 아래에 있습니다. 그게 내가 정말 필요하지 않은 임시 리디렉션, 때문에
또한, 나는 [R = 302, L] 플래그에 대해 너무 확실하지 않다.
RewriteEngine On
RewriteBase /OC/hoig/
RewriteCond %{THE_REQUEST} /news-detail\.php\?id=([^\s&]+)&news=([^\s&]+) [NC]
RewriteRule^nieuws/%1/%2? [R=302,L]
RewriteRule ^nieuws/([^/]+)/([^/]+)/?$ news-detail.php?id=$1&news=$2 [L,NC,QSA]
RewriteCond %{THE_REQUEST} /leerinhoud\.php [NC]
RewriteRule^leerinhoud [R=302,L]
RewriteRule leerinhoud leerinhoud.php [L,NC,QSA]
RewriteCond %{THE_REQUEST} /leerinhoud-detail\.php\?id=([^\s&]+)&leerinhoud=([^\s&]+) [NC]
RewriteRule^leerinhoud/%1/%2? [R=302,L]
RewriteRule ^leerinhoud/([^/]+)/([^/]+)/?$ leerinhoud-detail.php?id=$1&leerinhoud=$2 [L,NC,QSA]
RewriteCond %{THE_REQUEST} /partners\.php [NC]
RewriteRule^partners [R=302,L]
RewriteRule partners partners.php [L,NC,QSA]
RewriteCond %{THE_REQUEST} /contact\.php [NC]
RewriteRule^contact [R=302,L]
RewriteRule contact contact.php [L,NC,QSA]
# RewriteCond %{THE_REQUEST} /search\.php\?q=([^\s&]+) [NC]
# RewriteRule^search-results/%1? [R=302,L]
# RewriteRule search-results/([^/]+)/?$ search.php?q=$1 [L,NC,QSA]
RewriteCond %{THE_REQUEST} /rss-detail\.php\?rss=([^\s&]+) [NC]
RewriteRule^rss/%1? [R=302,L]
RewriteRule rss/([^/]+)/?$ rss-detail.php?rss=$1 [L,NC,QSA]
RewriteCond %{THE_REQUEST} /tags\.php [NC]
RewriteRule^tags [R=302,L]
RewriteRule tags tags.php [L,NC,QSA]
RewriteCond %{THE_REQUEST} /tag\.php\?tag=([^\s&]+) [NC]
RewriteRule^tag/%1? [R=302,L]
RewriteRule tag/([^/]+)/?$ tag.php?tag=$1 [L,NC,QSA]
RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule^nieuws [R=302,L]
RewriteRule nieuws index.php [L,NC,QSA]
:
목표
http://placeholder.com/OC/hoig/index.php-http://placeholder.com/OC/hoig/ http://placeholder.com/OC/hoig/leerinhoud.php-http://placeholder.com/OC/hoig/leerinhoud http://placeholder.com/OC/hoig/leerinhoud-detail.php?id=1&leerinhoud=the-slughttp://placeholder.com/OC/hoig/leerinhoud/1/the-slug
...
의 .htaccess에
TL; DR : 어떻게 얻을 수있는 kickass 깨끗한 SEO 친화적 인 URL의 내 모든 페이지에 대한?
미리 감사드립니다.
화려한없이 파일 이름을 다시 쓸 때 당신은 또한
MultiViews
옵션을 해제 할 수 있습니다! 정확히 내가 필요한 대답. 하지만,'MultiViews' 라인을 조금 설명해 주시겠습니까? 또한'R = 302'은 어떨까요? –'R = 302'는 일시적인 리디렉션입니다. 지금 당신의 코드가 작동 중일 때 영구적 인 리디렉션이 더 좋을 것입니다 (대신'R = 301'을 사용하십시오). 'MultiViews '에 관해서는, 그것은 컨텐츠 협상을위한 아파치 옵션이다. 존재하지 않는'/ foo'를 요청하고'foo.html '이라는 파일을 가지고 있다면'MultiViews'가 활성화되어 있다면 자동으로'foo.html'을 제공합니다. 그래서 확장 기능을 사용하지 않고 동일한 파일 이름을 사용하는 규칙 때문에 비활성화하는 것이 좋습니다. 더 많은 정보는 여기 : http://httpd.apache.org/docs/2.0/en/content-negotiation.html –
위대한,이 완벽한 답변 주셔서 감사합니다 저스틴, 나는 결국 뭔가를 배울 수 있습니다 :) –