Конец моих URL с косой чертой (/) или нет? И как я могу это сделать с помощью codeigniter? - PullRequest
5 голосов
/ 06 марта 2010

Эй, ребята, я пытаюсь выяснить, что является наиболее подходящим. Из статей, которые я прочитал, кажется, лучше заканчивать URL-адреса конечной косой чертой.

Так что вместо: http://www.site.com/article

Было бы читать: http://www.site.com/article/

Сначала я настроил свой htaccess, чтобы вызвать косую черту.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI}      ^.+[^/]$
RewriteRule ^(.+)$              $1/   

Затем я начал реализовывать это в своих ссылках и подумал, что если я сделаю привязку ('article /', 'article'), это сработает, но, похоже, эта функция удаляет завершающий слеш.

Чтобы обойти это, я изменил файл конфигурации так, чтобы он имел $ config ['url_suffix'] = '/'. Который работал .. В основном хорошо .. за исключением того, что у меня есть область документа на моем сайте с PDF и тому подобное. Таким образом, созданные там ссылки будут выглядеть как http://www.site.com/documents/doc1.pdf/. Это, конечно, не работает.

Как вы думаете, мое решение здесь? Я думаю, что я мог бы вернуться на любую страницу, на которую я ссылался на документы или файлы, и настроить их так, чтобы они не использовали функцию привязки, но я чувствую, что должен быть более легкий путь.

Спасибо!

Ответы [ 3 ]

1 голос
/ 06 марта 2010

Мои сайты используют оба.Думаю, косая черта указывает на что-то конкретное для пользователей.Поскольку «/» обычно обозначает папку, пользователи (особенно технические) принимают это, чтобы обозначить наличие подпапок или подпараметров на этой странице.Если у пользователя нет косой черты, это может указывать на отсутствие подпапок.Это работает для таких вещей, как файлы, например, для вашего файла pdf.

Из-за этого я решил не принуждать ни одну из сторон, а создать свой сайт таким образом, чтобы он отражал восприятие пользователей.Но это философия, вы создаете сайт для пользователей, а не для кода, верно?: -)

0 голосов
/ 24 июля 2012

Переопределить site_url() из Config.php, чтобы добавить косую черту, кроме случаев, когда ссылка на файл:

application/core/MY_Config.php:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Config extends CI_Config {

    function site_url($uri = '')
    {   
        if ($uri == '')
        {
            return $this->slash_item('base_url').$this->item('index_page');
        }

        if ($this->item('enable_query_strings') == FALSE)
        {
            $suffix = '';
            if( ! preg_match('/(.+)\.[a-zA-Z0-9]{2,4}$/', $uri))
            {
                $suffix = '/';              
            }
            return $this->slash_item('base_url').$this->slash_item('index_page').$this->_uri_string($uri).$suffix;              
        }
        else
        {
            return $this->slash_item('base_url').$this->item('index_page').'?'.$this->_uri_string($uri);
        }
    }

}
// END MY_Config Class

/* End of file MY_Config.php */
/* Location: ./application/core/MY_Config.php */
0 голосов
/ 06 марта 2010

Извините за грубость, но если это не работает (или вызывает проблемы), просто не делайте этого, и все в порядке. Добавление дополнительного кода для такого рода вещей - пустая трата времени. Некоторые браузеры автоматически добавляют косую черту, так зачем волноваться? Это действительно не имеет значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...