Sign in to follow this  
Followers 0
Amateur

Как сделать ссылки вида /struktura-sajta-i-chpu-razlichnyx-cms/

7 posts in this topic

Здравствуйте.

Подскажите как сделать ссылки вида 

http:// www.example.com/struktura-sajta-i-chpu-razlichnyx-cms/ 

  ?

 

P.S.: php, htaccess, самописные движки

Share this post


Link to post
Share on other sites

не все так просто) 

нужно для самописных сайтов, желательно пример роутера или т.п.

Share this post


Link to post
Share on other sites

Что то я не пойму...а при написании ЦМС об этом подумать нельзя было?)))

В .htacess можно сделать, но без пациентов ничего сказать нельзя

Share this post


Link to post
Share on other sites

На ASP.NET4 решается несколькими строками

 

global.asax

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
   System.Web.Routing.RouteTable.Routes.MapPageRoute("Articles", "article/{title}", "~/translate_url.aspx")
End Sub
 
translate_url.vb
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
   Dim articleID As String = GetArticleID(Page.RouteData.Values("title"))
   if articleID <> "" then
      Server.Execute("/article/?id=" + articleID)
   End If
End Sub

 

Это на VB, на C# то же самое с точностью до синтаксиса. Функцию поиска нужной статьи в базе по "translitu-v-adrese-stranitsy" придется написать самому.

Share this post


Link to post
Share on other sites

@Amateur, изучайте движок DLE, там все похоже сделано, файлы которые вам нужны:

.htaccess - корневой

/engine/engine.php

 

 

.htaccess - показано как URL менять.

В engine.php, есть как пример составления MySQL запроса, так и большая часть кода, ее прямо копипаст можно сделать, чуть-чуть подкорректировав.

Share this post


Link to post
Share on other sites

кусок .htaccess

<IfModule mod_rewrite.c>
  RewriteEngine on

  # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>

Преобразует ваш юрл  вида

site.com/habrahabr/ в site.com/index.php?q=habrahabr

а все остальное дело техники -- сравниваем адрес с хранящимся в базе, и выдаем соотв. страницу

только мой вам совет, лучше сравнивать хэши, так получается быстрее и элементарным способом отбиваются все sql инекции

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.