WordPress 고유주소 404 에러 해결 방법

워드프레스의 주소를 글 이름으로 하는 것은 여러모로 이득이 있다. URL만 보고 어떤 글인지 바로 유추할 수 있고 검색 키워드가 URL에 들어가기 때문에 검색엔진에 노출되는 것도 이득이 있다.

그런데 이렇게 설정을 한 후 404 에러가 나면서 기존의 글에 엑세스 하지 못하는 문제가 생겼다. 여기저기 검색을 해 보면서 해결 방법을 찾아서 한 번 적어본다.

고유주소 설정 방법은 간단하다. 워드프레스 관리 페이지에 들어간 후 설정 > 고유주소를 누르면 설정할 수 있다. 기본적으로 글 번호가 사용되게 되는데, 이것을 글 이름을 사용하도록 변경해주면 된다.

WordPress 고유주소 설정

저장을 하면 .htaccess에 설정 내용을 붙여넣으라 안내를 해 준다. 서버의 루트에 보면 .htaccess 파일을 찾을 수 있을 것이다. 아래와 같은 형식으로 되어있다. 참고로 other의 쓰기 권한이 있으면 자동으로 편집해준다.

pi@raspberrypi:/var/www/html $ cat .htaccess 

# BEGIN WordPress
# The directives (lines) between `BEGIN WordPress` and `END WordPress` are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

다음으로 apache 설정을 확인해줘야 한다. /etc/apache2/sites-enabled/000-default.conf 파일에서 AllowOverride를 All로 바꿔준다.

	<Directory "/var/www/html">
		AllowOverride All
	</Directory>

그리고 mod_rewrite를 활성화해줘야 한다. /etc/apache2/mods-enabled/ 밑에 rewite.load가 안보인다면 link를 걸어준다.

pi@raspberrypi:/etc/apache2/mods-enabled $ sudo ln -s ../mods-available/rewrite.load rewrite.load

pi@raspberrypi:/etc/apache2/mods-enabled $ ls -l
...
lrwxrwxrwx 1 root root 30  3월 18 14:18 rewrite.load -> ../mods-available/rewrite.load
...

이제 apache2를 재시작해보면 글 이름 도메인이 잘 동작할 것이다.

pi@raspberrypi:/etc/apache2/mods-enabled $ sudo service apache2 restart

YouTube 실시간 채팅 없애는 방법

최근 코로나19 사태로 인해 유튜브로 뉴스를 자주 보게되는데 실시간 채팅이 기본적으로 활성화되어있어서 여간 거슬리는게 아니다. 영양가 없는 쓸데없는 얘기들이 막 스크롤되는걸 뭐 어쩌라는건지..

YouTube에서는 기본적으로 비활성시키는 옵션이 존재하지 않아서 그리스몽키 스크립트가 있나 찾아보니, 역시 있다!

이 사이트의 첫 번째 스크립트 말고 제일 아랫쪽에 보면 스크립트가 하나 더 있는데, 이걸 복사해서 사용하면 된다.

// ==UserScript==
// @name         YouTube - Hide Live Chat
// @namespace    https://gist.github.com/LazyMammal/1c60c45e9df26602f688d025f3b20f0c
// @version      0.3
// @description  Hide live chat by default on live streams
// @author       LM, bastiMQ, IrisNebula
// @match        https://www.youtube.com/watch*
// @run-at       document-end
// @grant        none
// ==/UserScript==

function PressHideButton() {
	var el = document.getElementById("show-hide-button");
	if(el) {
		while(el.children.length > 0) {
			if(el.firstChild.getAttribute("id") == "button") {
				el.firstChild.click();
				console.log('Live Chat Hidden');
				return true;
			}
			el = el.firstChild;
		}
	}
	return false;
}

function KeepTrying(func, attempts, delayMillis) {
	console.log('Trying to Hide Live Chat, remaining attempts: ' + attempts);
	if(!func() && (attempts-1 > 0)) {
		window.setTimeout(function() {
			KeepTrying(func, attempts-1, delayMillis);
		}, delayMillis);
	}
}

(function() {
	'use strict';

	KeepTrying(PressHideButton, 12, 200);
})();

그리스몽키를 사용하려면 크롬에서 Tempermonkey를 설치해서 사용하면 된다. 크롬 익스텐션을 설치 후 새 스크립트를 만든 후 위의 코드를 전체 붙여넣기 하여 저장하면 된다.

YouTube를 다시 열어보면 실시간 채팅 창이 닫혀있는 채로 동영상이 재생된다.